{"id":21880995,"url":"https://github.com/apoclyps/reviews","last_synced_at":"2025-05-16T07:06:17.589Z","repository":{"id":36957683,"uuid":"342640385","full_name":"apoclyps/reviews","owner":"apoclyps","description":"A terminal UI dashboard to monitor requests for code review across Github and Gitlab repositories.","archived":false,"fork":false,"pushed_at":"2025-05-01T08:32:02.000Z","size":1527,"stargazers_count":176,"open_issues_count":12,"forks_count":12,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-05-12T13:53:35.298Z","etag":null,"topics":["code-review","developer-experience","hacktoberfest","python","tui","workflow"],"latest_commit_sha":null,"homepage":"https://pypi.org/project/reviews/","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/apoclyps.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":"apoclyps","ko_fi":"apoclyps"}},"created_at":"2021-02-26T16:51:52.000Z","updated_at":"2025-04-07T10:06:15.000Z","dependencies_parsed_at":"2024-01-29T01:52:36.314Z","dependency_job_id":"21b6006d-6b57-4cf7-8ad8-1434dbb21241","html_url":"https://github.com/apoclyps/reviews","commit_stats":{"total_commits":701,"total_committers":11,"mean_commits":63.72727272727273,"dds":"0.40228245363766046","last_synced_commit":"fff73d8c2f836dc770a625b7a9e265397dd80f29"},"previous_names":[],"tags_count":24,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apoclyps%2Freviews","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apoclyps%2Freviews/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apoclyps%2Freviews/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apoclyps%2Freviews/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/apoclyps","download_url":"https://codeload.github.com/apoclyps/reviews/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254485062,"owners_count":22078767,"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":["code-review","developer-experience","hacktoberfest","python","tui","workflow"],"created_at":"2024-11-28T09:17:13.904Z","updated_at":"2025-05-16T07:06:12.581Z","avatar_url":"https://github.com/apoclyps.png","language":"Python","funding_links":["https://github.com/sponsors/apoclyps","https://ko-fi.com/apoclyps"],"categories":[],"sub_categories":[],"readme":"# Reviews\n\n[![Tests](https://github.com/apoclyps/reviews/actions/workflows/test.yml/badge.svg)](https://github.com/apoclyps/reviews/actions/workflows/test.yml)\n![pypi](https://img.shields.io/pypi/v/reviews.svg)\n![versions](https://img.shields.io/pypi/pyversions/reviews.svg)\n\n![](https://banners.beyondco.de/Reviews.png?theme=light\u0026packageManager=pip+install\u0026packageName=reviews\u0026pattern=plus\u0026style=style_1\u0026description=Monitor+requests+for+Code+Reviews\u0026md=1\u0026showWatermark=0\u0026fontSize=225px\u0026images=link\u0026widths=250)\n\nSimplify requests for code review with an all-in-one TUI dashboard providing an overview of open PRs requiring review!\n\n### Quick Start\n\nIf you want to get up and running with Reviews, you will first first need to create a personal access token. To [create a Personal Access Token](https://github.com/settings/tokens) with the required permissions for reviews, you can `generate a new token (classic)` and enable the following full scopes for the following:\n\n- `repo`\n- `admin:org`\n\n\u003e Note: Whilst reviews only requires read only access, providing only `public_repo` and `read:org` permissions is insufficent as it does encompass all types of read-only access for repositories.\n\nTo start using reviews, you can run the following:\n\n```bash\nexport GITHUB_USER=\"your-github-username\"\nexport GITHUB_TOKEN=\"your personal GitHub token used for interacting with the API\"\nexport REVIEWS_GITHUB_REPOSITORY_CONFIGURATION=\"apoclyps/reviews\"\n\npip install --upgrade reviews\n\nreviews config --show\n\nreviews dashboard\n```\n\n[![asciicast](https://asciinema.org/a/414444.svg)](https://asciinema.org/a/414444)\n\n### Additional Support\n\n#### View Configuration\n\nIf you wish to view the configuration used by reviews at any time, you can use the following command to show all configuration (with secrets hidden or shown):\n\n```bash\nreviews config --hide\n\nreviews config --show\n```\n\n#### Gitlab\n\nIf you wish to use `reviews` with Gitlab, you will need to specify the configuration like so: `product id:project name/repository` and use the `--provider=gitlab` flag when running `reviews`:\n\n```bash\nexport GITLAB_USER=user\nexport GITLAB_TOKEN=token\nexport REVIEWS_GITLAB_REPOSITORY_CONFIGURATION=\"27629846:apoclyps/reviews\"\n\nreviews dashboard --provider=gitlab\n```\n\n### Getting started with local development\n\nTo build and run the CLI on your host, you will need Python 3.9, pip, and virtualenv to build and run `review`.\nIf you wish to publish a PR with your changes, first create a fork on Github and clone that code.\n\n```bash\n$ gh repo clone apoclyps/reviews\n$ cd reviews\n$ python3 -m venv env\n$ source env/bin/activate\n(env)$ pip install -r requirements_dev.txt\n(env)$ pip install -r requirements.txt\n(env)$ python -m reviews dashboard\n```\n\nIf you wish to keep a copy of Reviews on your host system, you can install and run it using:\n\n```bash\n$ export REVIEWS_GITHUB_REPOSITORY_CONFIGURATION=\"apoclyps/reviews\"\n$ python -m venv env\n$ source env/bin/activate\n$ python -m pip install -e .\n$ reviews -h\n```\n\nYou can run the Reviews within Docker:\n\n```bash\ndocker-compose build cli \u0026\u0026 docker-compose run --rm cli python -m reviews dashboard\n```\n\nTo build an image and run that image with all of the necessary dependencies using the following commands:\n\n```bash\n$ docker-compose build cli\n$ docker-compose run --rm cli python -m reviews dashboard\n```\n\nFor instructions on setting up a development environment outside of Docker, check out the [wiki](https://github.com/apoclyps/reviews/wiki/Development-Enviromnent).\n\n### Configuration\n\nReviews supports both .ini and .env files. Reviews always searches for configuration in this order:\n\n- Environment variables;\n- Repository: ini or .env file;\n- Configuration Path\n- Review Defaults\n\nThe following steps are used to provide the configuration using a `.env` or `.ini` file. The configuration can be read from within the module/repository (default location set by decouple) using the `.env` file or via a location specified by an environmental variable that points to a `.ini` file located in the root of the project or in a location specified by `PATH_TO_CONFIG`.\n\n#### Using an `.env` file within the repository\n\n```bash\ncd /home/\u003cyour-user\u003e/workspace/apoclyps/reviews\ntouch .env\n\necho \"REVIEWS_REPOSITORY_CONFIGURATION=apoclyps/micropython-by-example\" \u003e\u003e .env\npython -m reviews config\n```\n\n#### Using an `.ini` file within the repository\n\n```bash\ncd /home/\u003cyour-user\u003e/workspace/apoclyps/reviews\ntouch settings.ini\necho \"[settings]\\nREVIEWS_REPOSITORY_CONFIGURATION=apoclyps/micropython-by-example\" \u003e\u003e settings.ini\n\npython -m reviews config\n```\n\n#### Providing a configuration path\n\nIf you wish to set the configuration path to use an `ini` or `.env` file when running the application, you can use the configuration of a specific file by supplying the path to the configuration like so:\n\n```bash\ncd /home/apoclyps/\ntouch settings.ini\necho \"[settings]\\nREVIEWS_REPOSITORY_CONFIGURATION=apoclyps/micropython-by-example\" \u003e\u003e settings.ini\n\ncd /home/\u003cyour-user\u003e/workspace/apoclyps/reviews\nexport REVIEWS_PATH_TO_CONFIG=/home/\u003cyour-user\u003e/\n\npython -m reviews config\n```\n\nIf at any time, you want to confirm your configuration reflects the file you have provided, you can use `reviews config` to view what current configuration of Reviews.\n\n### Testing\n\nA test suite has been included to ensure Reviews functions correctly.\n\nTo run the entire test suite with verbose output, run the following:\n\n```bash\n$ pytest -vvv\n```\n\nAlternatively, to run a single set of tests.\n\n```bash\n$ pytest -vvv tests/test_config.py\n```\n\nAll tests can be run within docker by using the following command:\n\n```bash\n$ docker-compose build pytest \u0026\u0026 docker-compose run --rm pytest\n```\n\n### Linting\n\nTo run individual linting steps:\n\n```\ndocker-compose build test\ndocker-compose run --rm --no-deps test isort .\ndocker-compose run --rm --no-deps test black --line-length 119 --check .\ndocker-compose run --rm --no-deps test mypy .\ndocker-compose run --rm --no-deps test flake8 .\ndocker-compose run --rm --no-deps test pylint --rcfile=.pylintrc reviews\ndocker-compose run --rm --no-deps test bandit reviews\ndocker-compose run --rm --no-deps test vulture --min-confidence 90 reviews\ndocker-compose run --rm --no-deps test codespell reviews\ndocker-compose run --rm --no-deps test find . -name '*.py' -exec pyupgrade {} +\n```\n\nYou can also set up `pre-commit` to run the linting steps automatically during the commit phase,\nthe pre-commit pipeline can be set up by running the following command on the project root:\n\n```bash\npre-commit install\n```\n\n### Contributions\n\nPlease read [CONTRIBUTING.md](CONTRIBUTING.md) for details on our code of conduct, and the process for submitting pull requests to us.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapoclyps%2Freviews","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fapoclyps%2Freviews","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapoclyps%2Freviews/lists"}