python-gerrit icon indicating copy to clipboard operation
python-gerrit copied to clipboard

Client library for interacting with the Gerrit JSONRPC API

python-gerrit

python-gerrit is a Python interface to Gerrit, a code review system for Git.

DISCLAIMER: Gerrit does not have an official API. This library is a product of reverse engineering.

APIs exposed

There are three APIs available in python-gerrit:

* rpc - basic JSON-RPC API over HTTP; it has the same functionality
  as the standard Gerrit client.
* db - raw access to the database. It understandably needs more
  privileges than simple HTTP.
* raw - direct access to the filesystem. It needs local access
  to the Gerrit installation.

Most use cases can be satisfied by JSON-RPC alone. There are some glaring ommisions in the functionality, though, so for things such as project creation you will need to use db/raw. Check documentation of corresponding modules for more.

Testing

python-gerrit comes with a test suite. In order to run it, you need to have gerrit installed locally, with full access to its raw directory and database. Testing is managed by py.test You can run it by executing::

py.test

Tests expects the following environment variables to be set:

* GERRIT_PATH - path to a Gerrit installation
* GERRIT_DB - sqlalchemy URL to the Gerrit database
* GERRIT_GIT - URL to the Gerrit git repository
* GERRIT_URL - URL to the Gerrit HTTP server
* GERRIT_USERNAME - a user the suite with interact as

Check that the provided user has all the privileges required to submit, vote, comment, and so on.

Also, be sure your Gerrit installation has authentication method set to DEVELOPMENT_BECOME_ANY_ACCOUNT.

Credits

Brian Waldon Mike Hordecki