Build Status Coveralls Project generated with PyScaffold


Gerrit to GitHub / GitLab (not yet available)

Gerrit hooks to allow using GitHub and GitLab as CI platforms.

To use, install the Gerrit hooks plugin and then symlink the hooks from the virtualenv that has the package installed.

A Python 3.8 or greater environment

Repositories that use the CI platform must have full mirroring replication configured. In specific refs/* must be in the replication set and not refs/heads/*

To activate a given hook, symlink the installed hook in the gerrit hooks directory.

Two configuration files needed. These files are:

  • ~gerrituser/.config/gerrit_to_platform/gerrit_to_platform.ini

  • ~gerrituser/.config/gerrit_to_platform/replication.config

The replication.config file should be a symlink to the standard Gerrit replication.config file

The gerrit_to_platform.ini file has the following format:

[mapping "content-added"]
recheck = verify
remerge = merge

token = <a_token_that_allows_triggering_actions>

token = <a_token_that_allows_triggering_workflows>

The content-added mapping section is a key value pair for comment triggers to the corresponding workflow name or filename

GitHub Workflow Configuration

There are three hooks that gerrit-to-platform handles:

  • patchset-created (search filter: verify)

  • change-merged (search filter: merge)

  • comment-added (comment mapping for keyword to search filter)

Configuration for triggered workflows must meet the following requirements:

  • The workflow filename must contain ‘gerrit’

  • The workflow filename must contain the search filter

Required workflows must be part of the ORGANIZATION/.github magic repository. These workflow filenames must also contain ‘required’

ex: .github/workflows/gerrit-verify.yaml or .github/workflows/gerrit-required-verify.yaml

Standard workflows (non-required ones) must have the following primary configuration:

name: Gerrit Verify

# yamllint disable-line rule:truthy
        description: 'Branch that change is against'
        required: true
        type: string
        description: 'The ID for the change'
        required: true
        type: string
        description: 'The Gerrit number'
        required: true
        type: string
        description: 'URL to the change'
        required: true
        type: string
        description: 'Gerrit event type'
        required: true
        type: string
        description: 'The patch number for the change'
        required: true
        type: string
        description: 'The revision sha'
        required: true
        type: string
        description: 'Project in Gerrit'
        required: true
        type: string
        description: 'Gerrit refspec of change'
        required: true
        type: string

  group: ${{ github.event.inputs.GERRIT_CHANGE_ID || github.run_id }}
  cancel-in-progress: true


Required workflows must have the following extra input:

  description: 'The target GitHub repository needing the required workflow'
  required: true
  type: string

Making Changes & Contributing

This project uses pre-commit, please make sure to install it before making any changes:

pip install pre-commit
cd gerrit_to_platform
pre-commit install
pre-commit install -t commit-msg

Don’t forget to tell your contributors to also install and use pre-commit.


PyScaffold 4.4 provided the initial project setup. For details and usage information on PyScaffold see