Skip to main content

Gertty is a console-based interface to the Gerrit Code Review system.

As compared to the web interface, the main advantages are:

  • Workflow – the interface is designed to support a workflow similar to reading network news or mail. In particular, it is designed to deal with a large number of review requests across a large number of projects.

  • Offline Use – Gertty syncs information about changes in subscribed projects to a local database and local git repos. All review operations are performed against that database and then synced back to Gerrit.

  • Speed – user actions modify locally cached content and need not wait for server interaction.

  • Convenience – because Gertty downloads all changes to local git repos, a single command instructs it to checkout a change into that repo for detailed examination or testing of larger changes.

Installation

It is recommended (but not required) to install Gertty in a virtualenv. To set one up:

virtualenv gertty-env
source gertty-env/bin/activate

To install the latest version from the cheeseshop:

pip install gertty

To install from a git checkout:

pip install .

Gertty uses a YAML based configuration file that it looks for at ~/.gertty.yaml. Several sample configuration files are included. You can find them in the examples/ directory of the source distribution or the share/gertty/examples directory after installation.

Select one of the sample config files, copy it to ~/.gertty.yaml and edit as necessary. Search for CHANGEME to find parameters that need to be supplied. The sample config files are as follows:

minimal-gertty.yaml

Only contains the parameters required for Gertty to actually run.

reference-gertty.yaml

An exhaustive list of all supported options with examples.

openstack-gertty.yaml

A configuration designed for use with OpenStack’s installation of Gerrit.

You will need your Gerrit password which you can generate or retrieve by navigating to Settings, then HTTP Password.

Gertty uses local git repositories to perform much of its work. These can be the same git repositories that you use when developing a project. Gertty will not alter the working directory or index unless you request it to (and even then, the usual git safeguards against accidentally losing work remain in place). You will need to supply the name of a directory where Gertty will find or clone git repositories for your projects as the git-root parameter.

The config file is designed to support multiple Gerrit instances. The first one is used by default, but others can be specified by supplying the name on the command line.

Usage

After installing Gertty, you should be able to run it by invoking gertty. If you installed it in a virtualenv, you can invoke it without activating the virtualenv with /path/to/venv/bin/gertty which you may wish to add to your shell aliases. Use gertty --help to see a list of command line options available.

Once Gertty is running, you will need to start by subscribing to some projects. Use ‘L’ to list all of the projects and then ‘s’ to subscribe to the ones you are interested in. Hit ‘L’ again to shrink the list to your subscribed projects.

In general, pressing the F1 key will show help text on any screen, and ESC will take you to the previous screen.

Gertty works seamlessly offline or online. All of the actions that it performs are first recorded in a local database (in ~/.gertty.db by default), and are then transmitted to Gerrit. If Gertty is unable to contact Gerrit for any reason, it will continue to operate against the local database, and once it re-establishes contact, it will process any pending changes.

The status bar at the top of the screen displays the current number of outstanding tasks that Gertty must perform in order to be fully up to date. Some of these tasks are more complicated than others, and some of them will end up creating new tasks (for instance, one task may be to search for new changes in a project which will then produce 5 new tasks if there are 5 new changes). This will explain why the number of tasks displayed in the status bar sometimes changes rapidly.

If Gertty is offline, it will so indicate in the status bar. It will retry requests if needed, and will switch between offline and online mode automatically.

If Gertty encounters an error, this will also be indicated in the status bar. You may wish to examine ~/.gertty.log to see what the error was. In may cases, Gertty can continue after encountering an error. The error flag will be cleared when you leave the current screen.

To select text (e.g., to copy to the clipboard), hold Shift while selecting the text.

Contributing

For information on how to contribute to Gertty, please see the contents of the CONTRIBUTING.rst file.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gertty-1.0.2.tar.gz (69.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gertty-1.0.2-py2-none-any.whl (82.2 kB view details)

Uploaded Python 2

File details

Details for the file gertty-1.0.2.tar.gz.

File metadata

  • Download URL: gertty-1.0.2.tar.gz
  • Upload date:
  • Size: 69.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for gertty-1.0.2.tar.gz
Algorithm Hash digest
SHA256 b553f8bfa40bd73c954b25b3a8007118c8408cac1d3d5163cff053f366f4954d
MD5 f55e7dc8e568430d9c1fc25a41729341
BLAKE2b-256 8625803b50de9c8d78973cc47e2995140e7e77a87392d4d4efb3f70f8958f467

See more details on using hashes here.

File details

Details for the file gertty-1.0.2-py2-none-any.whl.

File metadata

File hashes

Hashes for gertty-1.0.2-py2-none-any.whl
Algorithm Hash digest
SHA256 269ac6c32b9dbca4037a9af8231ffd111a66ef57292b4fa357de127c138c068c
MD5 1448b27ddb7e38b34e53f950d3c75688
BLAKE2b-256 bbef789def47f4dcf6753f056438494de3a906aa0ad3048400d37544d8742b91

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page