{"id":50417929,"url":"https://github.com/asterinas/score-and-rank-contributors","last_synced_at":"2026-05-31T07:02:05.805Z","repository":{"id":219870850,"uuid":"750134451","full_name":"asterinas/score-and-rank-contributors","owner":"asterinas","description":"A command-line tool to score and rank contributors based on their activity over a set of projects by analyzing Git histories","archived":false,"fork":false,"pushed_at":"2024-03-03T02:18:11.000Z","size":25,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-04-18T02:12:49.141Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/asterinas.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2024-01-30T03:32:37.000Z","updated_at":"2024-02-03T14:46:30.000Z","dependencies_parsed_at":"2024-03-03T03:22:43.742Z","dependency_job_id":"c6a6c91e-4111-48c0-adab-66a5690ec197","html_url":"https://github.com/asterinas/score-and-rank-contributors","commit_stats":null,"previous_names":["asterinas/score-and-rank-contributors"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/asterinas/score-and-rank-contributors","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asterinas%2Fscore-and-rank-contributors","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asterinas%2Fscore-and-rank-contributors/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asterinas%2Fscore-and-rank-contributors/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asterinas%2Fscore-and-rank-contributors/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/asterinas","download_url":"https://codeload.github.com/asterinas/score-and-rank-contributors/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asterinas%2Fscore-and-rank-contributors/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33722156,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-31T02:00:06.040Z","response_time":95,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-05-31T07:02:05.072Z","updated_at":"2026-05-31T07:02:05.786Z","avatar_url":"https://github.com/asterinas.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# score-and-rank-contributors\n\nA command-line tool to score and rank contributors\nbased on their activity over a set of projects\nby analyzing Git histories.\n\nThe usage of the tool is summarized below:\n\n```bash\n./score-and-rank-contributors [--since since_date] [--authors author_list] project_1 ... project_N\n```\n\n## Basic Usage\n\nThe command extracts and accumulates contributor statistics\nfrom the Git histories in the given project directories\n`project_1`, ..., `project_N`.\nEach author with a unique email address is treated\nas a unique contributor\nand scored according to his or her contribution statistics.\nThe command outputs a JSON array of contributors, ranked by score.\n\nHere is an example command.\n\n```bash\n./score-and-rank-contributors --since 2022-01-01 --authors contributors.txt my_project\n```\n\nHere is an example output.\n\n```json\n[\n   {\n      \"rank\": 1,\n      \"name\": \"Tom\",\n      \"score\": 1000\n   },\n   {\n      \"rank\": 2,\n      \"name\": \"Jerry\",\n      \"score\": 123\n   },\n   {\n      \"rank\": 3,\n      \"name\": \"Spike\",\n      \"score\": 1\n   }\n]\n```\n\n## Optional Arguments\n\nAn optional `since_date` argument,\nin `YYYY-MM-DD` format,\nmay be given\nso that only the commits authored since `since_date` count.\n\nAn optional `author_list` argument may be given\nto specify a text file,\nwhere each line provides some extra information\nabout a contributor.\n\n```\nContributor A \u003cname_a1@comp_a1\u003e \u003cname_a2@comp_a2\u003e \u003cname_a3@comp_a3\u003e\nContributor B's Display Name \u003cname_b1@comp_b1\u003e\n```\n\nProviding the `author_list` file serves two purposes.\nFirst,\nan individual may own multiple emails.\nWithout any assistance,\nthe tool has no way of knowing\nthat these different email addresses\nbelong to the same contributor.\nSecond,\na contributor may prefer the tool\nto use a different display name\nthan the one in the Git history.\n\n## Contribution Scores\n\nA contributor owns a point for\n\n1. Every commit that he or she authors;\n2. Every 100 lines of additions or deletions that he or she authors.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fasterinas%2Fscore-and-rank-contributors","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fasterinas%2Fscore-and-rank-contributors","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fasterinas%2Fscore-and-rank-contributors/lists"}