https://github.com/pycontribs/gri
Git/Gerrit Review Interface helps you manage change requests from multiple servers.
https://github.com/pycontribs/gri
gerrit gerrit-api gerrit-cli gerrit-review-cli hacktoberfest python-module tui
Last synced: 11 months ago
JSON representation
Git/Gerrit Review Interface helps you manage change requests from multiple servers.
- Host: GitHub
- URL: https://github.com/pycontribs/gri
- Owner: pycontribs
- License: mit
- Created: 2019-09-02T11:49:06.000Z (over 6 years ago)
- Default Branch: main
- Last Pushed: 2025-04-28T16:51:33.000Z (11 months ago)
- Last Synced: 2025-04-28T17:48:47.540Z (11 months ago)
- Topics: gerrit, gerrit-api, gerrit-cli, gerrit-review-cli, hacktoberfest, python-module, tui
- Language: Python
- Homepage:
- Size: 92.8 KB
- Stars: 10
- Watchers: 1
- Forks: 7
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# gri : Git Reduced Interface
`gri` is a CLI tool that **lists git reviews** from multiple servers
in a way that makes easier to to identify which one need you attention.
Currently supported backends are Gerrit and GitHub but it should be easy to
add others if needed.

## Features
* combines results from multiple Gerrit or GitHub servers
* uses terminal clickable links to make it easy to access these reviews
* displays important metadata related to reviews in a compressed format
* reviews are sorted based on probablility of getting merged
* allows user to abandon very old reviews
* can be used to query:
* already merged reviews
* incoming reviews (where you are a reviewer)
* reviewes created by other users than yourself
* produce HTML reports
## Installing
```bash
pip install gri
```
## Usage
You can just run `gri`, or `python -m gri` in order to get a list of your
current reviews, aslo known as outgoing reviews.
GRI uses a simple config file [`~/.config/gri/gri.yaml`][1] but when the file
is missing, it will try to load servers from [`~/.gertty.yaml`][2] in case you
have one.
```console
$ gri --help
Usage: gri [OPTIONS] COMMAND1 [ARGS]... [COMMAND2 [ARGS]...]...
Options:
-a, --abandon Abandon changes (delete for drafts) when they are
>90 days old and with negative score. Requires -f
to perform the action.
-z, --abandon-age INTEGER default=90, number of days for which changes are
subject to abandon
-u, --user TEXT Query another user than self
-s, --server TEXT [0,1,2] key in list of servers, Query a single
server instead of all
-o, --output TEXT Filename to dump the result in, currently only
HTML is supported
-f, --force Perform potentially destructive actions.
-d, --debug Debug mode
--help Show this message and exit.
Commands:
incoming Incoming reviews (not mine)
merged merged in the last number of days
owned Changes originated from current user (implicit)
```
There is also an experimental `grib` command line for quering bugs (issues),
which has almost identical options.
## Configuring
Unless you already have a GerTTY config, here is how to configure the tool:
```yaml
# ~/.config/gri/gri.yaml
servers:
- name: opendev # server 0, select it with '-s 0'
url: https://review.opendev.org/
- name: rdo # server 0, select it with '-s 1'
url: https://review.rdoproject.org/r/
auth-type: basic # needed only for old gerrit versions
```
You may be surprised to observe that the credentials are not stored inside
the same file. That is by design and the tool will load them from `~/.netrc`
file, which is also the standard way to place network related credentials.
```ini
# ~/.netrc
# password is the token generated by gerrit on your user settings page
machine review.rdoproject.org login jonhdoe password changeme
```
## Contributing
Are you missing a feature, just check if there is a bug open for it and add
a new one if not. Once done, you are welcomed to make a PR that implements
the missing change.
## Related tools
* [git-review][4] is the git extension for working with gerrit, where I am also
one of the core contributors.
* [gertty](https://opendev.org/ttygroup/gertty) is a very useful tui for gerrit
which inspired me but which presents one essential design limitation: it does
not work with multiple Gerrit servers.
* [gerrit-view](https://github.com/Gruntfuggly/gerrit-view) is a vscode plugin
that can be installed from [Visual Studio Marketplace][3].
## Notes
1. `gri` name comes from my attempt to find a short name that was starting
with **g** (from git/gerrit) and preferably sounds like `cli`.
[1]: https://github.com/pycontribs/gri/blob/master/test/gri.yaml
[2]: https://opendev.org/ttygroup/gertty/src/branch/master/examples/minimal-gertty.yaml
[3]: https://marketplace.visualstudio.com/items?itemName=Gruntfuggly.gerrit-view
[4]: https://docs.openstack.org/infra/git-review/