We wrote a Medium article of how our algorithm works. I hope this helps you to understand, if not just let us know.
It is important, that scoring shows how experienced developer you are per technology.
Yes, you can get score by your private repositories too! Just login to your CodersRank profile and click on the ADD button at “manually added repos”.
To upload a private repository data first you have to extract it from your repository.
- Download or clone our Python script from here: https://github.com/codersrank-org/repo_info_extractor
- Extract data from your private repository using the Python script. Steps are explained here
- Upload the output of the script, which is a zip file. By default it is called “repo_data.json.zip” ==> Do this step when you’re logged in to your CR profile at “Manually added repos”
- If you have uploaded all the repositories you wanted then press the “CALCULATE SCORE” button
The script extracts only a few information from the repos:
- Number of inserted lines in each commit
- Number of deleted lines in each commit
Other information such as remote URLs, file names, other developers’ email addresses, names are hashed. So we can know if two commits belong to the same file but we don’t know the file name.
Our algorithm is based on following your line changes and checking changes. So if you create a commit in repo “A” and later somebody creates a fork of that repository then it copies only the repo but not the events. It doesn’t matter how many forks your repo has it still considered as one.
However, if you make a fork of another repo and commit into the new repo we will count it because it is a new event just happened to be in a forked repo.
Scores are distributed between the programming languages of the repository. So if you commit into a repository that consists of 500 bytes of PHP code and 500 bytes of Shell, then the score will be shared 50%-50% by the two languages.
We use the GitHub API to get the ratio of the programming languages for a given repository. Here is an example: https://api.github.com/repos/vuejs/vue/languages
However, sometimes GitHub cannot recognize the language of a repository but fortunately, you can change it manually.
Parsing the source code of all the public repositories is not an option right now. However, we wanted to give the opportunity to the developers to fine tune their profile. This is why we introduced the topics.
You can add topics to your GitHub repository. For example, you have a PHP repository where you use Symfony and composer. You add the Symfony and composer topics to your repository then we can recognize you use these technologies and get scores for them.
We’re most active on our open slack channel, feel free to join and share your insights with our team!
You can add any private or public Git repo without sharing any private information, using our “Manually added repos” feature.
You can already connect Your GitHub, GitLab and Stackoverflow accounts.
We are planning to integrate LinkedIn, BitBucket and HackerRank. Later Medium and Udemy too.
We believe with these platforms we will be able to create a real picture of You as a developer.
Could you please check the tags of your repository on GitHub? It might be set incorrectly which leads to a scoring issue on our platform as well.
Contact us at firstname.lastname@example.org if you’re sure this is being set up well, but you still don’t agree with your scoring
You can do it at https://profile.codersrank.io/account/
Secret idea: If you’re interested how good developer You’d be in another city or country, you can test it by changing your destination temporary to that.
Unfortunately, we cannot detect if somebody renames a GitHub profile yet. However, we can fix it manually. Just send an email to email@example.com with the old and new username and it will be fixed.
Private repository integration is totally trustworthy. You have to run a script locally which will create a JSON file what you have to upload on our site. This way, you will be able to see and check the output before uploading and you can be sure that we don’t see your work.
You can add any kind of Git repos from any service by using this extractor (GitLab, BitBucket, Azure DevOps; private or public).
Our extractor doesn’t share any private data. So if you have a Confidentiality Agreement, Non-Disclosure Agreement with your company, you can also use this extractor.
And of course, it’s open-source. You can check it on your own and decide whether it fits your conditions or not.
✅ If you have 10s, join our Slack channel, where You’ll see the most recent updates & new features discussions.
✅ If you have 2 min, recommend CodersRank to some friends & show Your CodersRank profile at Your GitHub/LinkedIn.
You can also help by improving our topics whitelist: https://github.com/codersrankOrg/tags_white_list
These things are a huge support for our project!