Gerrit to GitHub / GitLab
Project description
gerrit-to-platform
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 [github.com] token = <a_token_that_allows_triggering_actions> [gitlab.com] 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 on: workflow_dispatch: inputs: GERRIT_BRANCH: description: 'Branch that change is against' required: true type: string GERRIT_CHANGE_ID: description: 'The ID for the change' required: true type: string GERRIT_CHANGE_NUMBER: description: 'The Gerrit number' required: true type: string GERRIT_CHANGE_URL: description: 'URL to the change' required: true type: string GERRIT_EVENT_TYPE: description: 'Gerrit event type' required: true type: string GERRIT_PATCHSET_NUMBER: description: 'The patch number for the change' required: true type: string GERRIT_PATCHSET_REVISION: description: 'The revision sha' required: true type: string GERRIT_PROJECT: description: 'Project in Gerrit' required: true type: string GERRIT_REFSPEC: description: 'Gerrit refspec of change' required: true type: string concurrency: group: ${{ github.event.inputs.GERRIT_CHANGE_ID || github.run_id }} cancel-in-progress: true jobs: <your_job_configurations>
Required workflows must have the following extra input:
TARGET_REPO: 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.
Note
PyScaffold 4.4 provided the initial project setup. For details and usage information on PyScaffold see https://pyscaffold.org/.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file gerrit_to_platform-0.2.2.tar.gz
.
File metadata
- Download URL: gerrit_to_platform-0.2.2.tar.gz
- Upload date:
- Size: 48.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.0.0 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 16cb2de219ec83e2e2a7de93d063fae6200c01a23589574e518dcc51cf8c161c |
|
MD5 | edd873f11d137f24e78804da5f3b7e2b |
|
BLAKE2b-256 | acb2964bbce36f15167f7410eb4f19fe5e4ad1b810aa41988e629f94175bb305 |
File details
Details for the file gerrit_to_platform-0.2.2-py3-none-any.whl
.
File metadata
- Download URL: gerrit_to_platform-0.2.2-py3-none-any.whl
- Upload date:
- Size: 22.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.0.0 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 900b8d3524c93d4f978cecf6c42d228f87695cdb6656b627fe9d79b9a7341c93 |
|
MD5 | 8969853a0ab76ba4bf743fc8fc499875 |
|
BLAKE2b-256 | 0c7bd9392bf86537680c90f28293b3998b6bbe567b40d20bf650f181bfca7d53 |