{"id":16398914,"url":"https://github.com/albertyw/git-reviewers","last_synced_at":"2025-03-16T16:31:33.029Z","repository":{"id":57434801,"uuid":"93371192","full_name":"albertyw/git-reviewers","owner":"albertyw","description":"Intelligently find code reviewers","archived":false,"fork":false,"pushed_at":"2024-04-24T06:10:54.000Z","size":153,"stargazers_count":14,"open_issues_count":9,"forks_count":4,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-04-24T10:28:51.682Z","etag":null,"topics":["cli","code-review","git","git-review","hacktoberfest","python","python-3","reviewer"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/albertyw.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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,"publiccode":null,"codemeta":null}},"created_at":"2017-06-05T06:13:51.000Z","updated_at":"2024-07-15T06:33:16.763Z","dependencies_parsed_at":"2023-02-16T21:01:21.652Z","dependency_job_id":"2e530867-468c-4e4e-94e3-4a7fd3f0eede","html_url":"https://github.com/albertyw/git-reviewers","commit_stats":{"total_commits":230,"total_committers":3,"mean_commits":76.66666666666667,"dds":"0.017391304347826098","last_synced_commit":"b5c717f16dc8774fcff7713d2e647637bf7fad0f"},"previous_names":[],"tags_count":27,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/albertyw%2Fgit-reviewers","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/albertyw%2Fgit-reviewers/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/albertyw%2Fgit-reviewers/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/albertyw%2Fgit-reviewers/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/albertyw","download_url":"https://codeload.github.com/albertyw/git-reviewers/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243685509,"owners_count":20330980,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["cli","code-review","git","git-review","hacktoberfest","python","python-3","reviewer"],"created_at":"2024-10-11T05:14:17.578Z","updated_at":"2025-03-16T16:31:32.730Z","avatar_url":"https://github.com/albertyw.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"git-reviewers\n=============\n\n[![PyPI](https://img.shields.io/pypi/v/git-reviewers.svg)](https://pypi.org/project/git-reviewers/)\n[![Python Versions](https://img.shields.io/pypi/pyversions/git-reviewers.svg)](https://pypi.org/project/git-reviewers/)\n\n\n[![Build Status](https://drone.albertyw.com/api/badges/albertyw/git-reviewers/status.svg)](https://drone.albertyw.com/albertyw/git-reviewers)\n[![Maintainability](https://api.codeclimate.com/v1/badges/58c63ec99d395f0f8df6/maintainability)](https://codeclimate.com/github/albertyw/git-reviewers/maintainability)\n[![Test Coverage](https://api.codeclimate.com/v1/badges/58c63ec99d395f0f8df6/test_coverage)](https://codeclimate.com/github/albertyw/git-reviewers/test_coverage)\n\nIntelligently find code reviewers.\nSee also, [git-browse](https://github.com/albertyw/git-browse).\n\nInstallation\n------------\n\n### Homebrew (preferred for MacOS)\n\nIf you use Homebrew, you can install git-reviewers through the\n[homebrew-albertyw tap](https://github.com/albertyw/homebrew-albertyw):\n\n\n```bash\nbrew install albertyw/albertyw/git-reviewers\n```\n\n### Manual\n\nIf you don't use Homebrew, first clone this repository to somewhere on your system\n(perhaps in your [dotfiles](https://github.com/albertyw/dotfiles)\nrepository), then run `\u003cREPOSITORY_LOCATION\u003e/install.sh`.\n\nAfter installation, you can modify any default flags for git-reviewers\nin `~/.gitconfig`\n\nUsage\n-----\n\n```\nusage: reviewers.py [-h] [-v] [--verbose] [-i IGNORE] [-j JSON] [-c]\n\nSuggest reviewers for your diff. https://github.com/albertyw/git-reviewers\n\noptional arguments:\n  -h, --help            show this help message and exit\n  -v, --version         show program's version number and exit\n  --verbose             verbose mode\n  -i IGNORE, --ignore IGNORE\n                        ignore a list of reviewers (comma separated)\n  -j JSON, --json JSON  json file to read configs from, overridden by CLI\n                        flags\n  -c, --copy            Copy the list of reviewers to clipboard, if available\n  -b BASE_BRANCH, --base-branch BASE_BRANCH\n                        Compare against a base branch (default: master)\n```\n\nFinders\n-------\n\n`git-reviewers` is componsed of a set of strategies for generating lists of\nreviewers, or Finders.  They return a weighted set of reviewers which is then\nsorted and recommended to you.  They include:\n\n- `FindLogReviewers` - Generate a list of reviewers based on committers to\n  your committed (but not merged with master) files\n- `FindHistoricalReviewers` - Generate reviewers based on the repository\n  committers as a whole\n- `FindArcCommitReviewers` - Generate reviewers based on arc commit messages\n  for files which you have modified on your branch\n\nConfiguration\n-------------\n\n`git-reviewers` supports reading configuration from a configuration file\nwith the `--json` flag.  The configuration file accepts json with the\nfollowing fields (all fields optional):\n\n```json\n{\n    \"verbose\": false,\n    \"copy\": false,\n    \"ignore\": [\"a\", \"b\", \"c\"],\n    \"base_branch\": \"master\"\n}\n```\n\n`git-reviewers` will also by default search for and load a json\nconfiguration file at `~/.git/reviewers`.\n\nDevelopment\n-----------\n\n```bash\npip install -e .[test]\nruff check .\nmypy .\ncoverage run -m unittest\ncoverage report -m\n```\n\nPublishing\n----------\n\n```bash\npip install twine\npython -m build\ntwine upload dist/*\n```\n\nNeed to also update [albertyw/homebrew-albertyw](https://github.com/albertyw/homebrew-albertyw).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falbertyw%2Fgit-reviewers","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falbertyw%2Fgit-reviewers","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falbertyw%2Fgit-reviewers/lists"}