reviews

A terminal UI dashboard to monitor requests for code review across Github and Gitlab repositories.

https://github.com/apoclyps/reviews

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (15.3%) to scientific vocabulary

Keywords

code-review developer-experience hacktoberfest python tui workflow

Keywords from Contributors

serializer yolov5s interpretability xunit-framework xunit-test embedded distributed e2e-testing optimizer mesh
Last synced: 6 months ago · JSON representation

Repository

A terminal UI dashboard to monitor requests for code review across Github and Gitlab repositories.

Basic Info
Statistics
  • Stars: 178
  • Watchers: 2
  • Forks: 13
  • Open Issues: 13
  • Releases: 24
Topics
code-review developer-experience hacktoberfest python tui workflow
Created almost 5 years ago · Last pushed 6 months ago
Metadata Files
Readme Contributing Funding License Code of conduct Codeowners

README.md

Reviews

Tests pypi versions

Simplify requests for code review with an all-in-one TUI dashboard providing an overview of open PRs requiring review!

Quick Start

If 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 with the required permissions for reviews, you can generate a new token (classic) and enable the following full scopes for the following:

  • repo
  • admin:org

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.

To start using reviews, you can run the following:

```bash export GITHUBUSER="your-github-username" export GITHUBTOKEN="your personal GitHub token used for interacting with the API" export REVIEWSGITHUBREPOSITORY_CONFIGURATION="apoclyps/reviews"

pip install --upgrade reviews

reviews config --show

reviews dashboard ```

asciicast

Additional Support

View Configuration

If 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):

```bash reviews config --hide

reviews config --show ```

Gitlab

If 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:

```bash export GITLABUSER=user export GITLABTOKEN=token export REVIEWSGITLABREPOSITORY_CONFIGURATION="27629846:apoclyps/reviews"

reviews dashboard --provider=gitlab ```

Getting started with local development

To build and run the CLI on your host, you will need Python 3.9, pip, and virtualenv to build and run review. If you wish to publish a PR with your changes, first create a fork on Github and clone that code.

bash $ gh repo clone apoclyps/reviews $ cd reviews $ python3 -m venv env $ source env/bin/activate (env)$ pip install -r requirements_dev.txt (env)$ pip install -r requirements.txt (env)$ python -m reviews dashboard

If you wish to keep a copy of Reviews on your host system, you can install and run it using:

bash $ export REVIEWS_GITHUB_REPOSITORY_CONFIGURATION="apoclyps/reviews" $ python -m venv env $ source env/bin/activate $ python -m pip install -e . $ reviews -h

You can run the Reviews within Docker:

bash docker-compose build cli && docker-compose run --rm cli python -m reviews dashboard

To build an image and run that image with all of the necessary dependencies using the following commands:

bash $ docker-compose build cli $ docker-compose run --rm cli python -m reviews dashboard

For instructions on setting up a development environment outside of Docker, check out the wiki.

Configuration

Reviews supports both .ini and .env files. Reviews always searches for configuration in this order:

  • Environment variables;
  • Repository: ini or .env file;
  • Configuration Path
  • Review Defaults

The 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.

Using an .env file within the repository

```bash cd /home//workspace/apoclyps/reviews touch .env

echo "REVIEWSREPOSITORYCONFIGURATION=apoclyps/micropython-by-example" >> .env python -m reviews config ```

Using an .ini file within the repository

```bash cd /home//workspace/apoclyps/reviews touch settings.ini echo "[settings]\nREVIEWSREPOSITORYCONFIGURATION=apoclyps/micropython-by-example" >> settings.ini

python -m reviews config ```

Providing a configuration path

If 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:

```bash cd /home/apoclyps/ touch settings.ini echo "[settings]\nREVIEWSREPOSITORYCONFIGURATION=apoclyps/micropython-by-example" >> settings.ini

cd /home//workspace/apoclyps/reviews export REVIEWSPATHTO_CONFIG=/home//

python -m reviews config ```

If 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.

Testing

A test suite has been included to ensure Reviews functions correctly.

To run the entire test suite with verbose output, run the following:

bash $ pytest -vvv

Alternatively, to run a single set of tests.

bash $ pytest -vvv tests/test_config.py

All tests can be run within docker by using the following command:

bash $ docker-compose build pytest && docker-compose run --rm pytest

Linting

To run individual linting steps:

docker-compose build test docker-compose run --rm --no-deps test isort . docker-compose run --rm --no-deps test black --line-length 119 --check . docker-compose run --rm --no-deps test mypy . docker-compose run --rm --no-deps test flake8 . docker-compose run --rm --no-deps test pylint --rcfile=.pylintrc reviews docker-compose run --rm --no-deps test bandit reviews docker-compose run --rm --no-deps test vulture --min-confidence 90 reviews docker-compose run --rm --no-deps test codespell reviews docker-compose run --rm --no-deps test find . -name '*.py' -exec pyupgrade {} +

You can also set up pre-commit to run the linting steps automatically during the commit phase, the pre-commit pipeline can be set up by running the following command on the project root:

bash pre-commit install

Contributions

Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.

Owner

  • Name: Kyle Harrison
  • Login: apoclyps
  • Kind: user
  • Location: Belfast
  • Company: @slicelife

Programmer & Geeky Dad

GitHub Events

Total
  • Issues event: 1
  • Watch event: 7
  • Delete event: 37
  • Issue comment event: 20
  • Push event: 27
  • Pull request event: 68
  • Fork event: 2
  • Create event: 36
Last Year
  • Issues event: 1
  • Watch event: 7
  • Delete event: 37
  • Issue comment event: 20
  • Push event: 27
  • Pull request event: 68
  • Fork event: 2
  • Create event: 36

Committers

Last synced: 9 months ago

All Time
  • Total Commits: 752
  • Total Committers: 11
  • Avg Commits per committer: 68.364
  • Development Distribution Score (DDS): 0.443
Past Year
  • Commits: 31
  • Committers: 1
  • Avg Commits per committer: 31.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
dependabot[bot] 4****] 419
Kyle Harrison k****m@h****m 284
dependabot-preview[bot] 2****] 35
yushao2 3****2 6
MindNumbing s****l@s****m 2
Paulo S. G. Ferraz p****f@g****m 1
Patrik Hermansson h****k@g****m 1
Matt Chan 4****n 1
Lars Kellogg-Stedman l****s@o****m 1
Ammaar Esmailjee a****e@g****m 1
Adam Tokarski a****i 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 3
  • Total pull requests: 286
  • Average time to close issues: 3 months
  • Average time to close pull requests: 22 days
  • Total issue authors: 3
  • Total pull request authors: 2
  • Average comments per issue: 3.67
  • Average comments per pull request: 0.62
  • Merged pull requests: 224
  • Bot issues: 0
  • Bot pull requests: 149
Past Year
  • Issues: 1
  • Pull requests: 72
  • Average time to close issues: N/A
  • Average time to close pull requests: 8 days
  • Issue authors: 1
  • Pull request authors: 2
  • Average comments per issue: 1.0
  • Average comments per pull request: 0.17
  • Merged pull requests: 39
  • Bot issues: 0
  • Bot pull requests: 28
Top Authors
Issue Authors
  • Xelbayria (1)
  • MindNumbing (1)
  • protux (1)
Pull Request Authors
  • dependabot[bot] (149)
  • apoclyps (137)
Top Labels
Issue Labels
enhancement (1) bug (1) help wanted (1) Hacktoberfest (1)
Pull Request Labels
dependencies (280) python (126) docker (16) github_actions (11) documentation (1) release (1)

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 189 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 5
  • Total versions: 26
  • Total maintainers: 1
pypi.org: reviews

A terminal UI dashboard to monitor requests for code review across Github repositories.

  • Versions: 26
  • Dependent Packages: 0
  • Dependent Repositories: 5
  • Downloads: 189 Last month
Rankings
Stargazers count: 5.5%
Dependent repos count: 6.6%
Average: 9.6%
Forks count: 9.8%
Dependent packages count: 10.1%
Downloads: 15.8%
Maintainers (1)
Funding
  • https://ko-fi.com/apoclyps
Last synced: 6 months ago

Dependencies

requirements.txt pypi
  • PyGithub ==1.55
  • click ==8.1.3
  • humanize ==4.2.1
  • idna ==2.10
  • keyboard ==0.13.5
  • python-decouple ==3.6
  • python-gitlab ==3.5.0
  • rich ==12.4.4
requirements_dev.txt pypi
  • bandit ==1.7.4
  • black ==22.3.0
  • codespell ==2.1.0
  • flake8 ==4.0.1
  • flake8-unused-arguments ==0.0.10
  • freezegun ==1.2.1
  • ipdb ==0.13.9
  • isort ==5.10.1
  • mypy ==0.961
  • pre-commit ==2.19.0
  • pylint ==2.14.3
  • pytest ==7.1.2
  • pytest-cov ==3.0.0
  • pyupgrade ==2.34.0
  • types-click ==7.1.8
  • types-freezegun ==1.1.10
  • vulture ==2.4
.github/workflows/pre-commit.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • peter-evans/create-pull-request v4 composite
.github/workflows/publish.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
.github/workflows/test.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • codecov/codecov-action v3 composite
.github/workflows/todo-issues.yml actions
  • actions/checkout v3 composite
  • alstr/todo-to-issue-action v4.9 composite
Dockerfile docker
  • python 3.11.1-slim-bullseye build
docker-compose.yml docker
setup.py pypi