* feat: Gerrit supports gitUrl This change adds support for the gitUrl parameter to the gerrit platform. It queries the gerrit server to check what download options are available. If ssh is selected but not available, it will throw an error. * feat: Gerrit supports gitUrl This removes support for querying the supported download schemes and instead hard-codes the default ssh port. * fix: Review feedback Addresses feedback left in review: - constants for ports - better SSH url creation - more consistent util method usage * fix: Review feedback Addresses feedback left in review: - Reverts SSH URL creation to ensure coverage target * fix: Review feedback Addresses feedback left in review: - Convert switch statement to if/else - Move endpointURL check into getGerritResponse This makes the parse/clone calls unnecessary. * fix: Review feedback Addresses feedback left in review: - Simplify ssh url creation
Gerrit
Supported Gerrit versions
Renovate supports all Gerrit 3.x versions.
Support for Gerrit is currently experimental, meaning that it might still have some undiscovered bugs or design limitations, and that we might need to change functionality in a non-backwards compatible manner in a non-major release.
Renovate stores its metadata in the commit message footer.
Authentication
Let Renovate use your HTTP access token by doing one of the following:
- Set your HTTP access token as a
passwordin yourconfig.jsfile, or - Set your HTTP access token as an environment variable
RENOVATE_PASSWORD, or - Set your HTTP access token when you run Renovate in the CLI with
--password=
The Gerrit user account must be allowed to assign the Code-Review label with "+2" to their own changes for "automerge" to work.
You must set platform=gerrit in your Renovate config file.
Renovate PR/Branch-Model with Gerrit and needed permissions
If you use the "Code-Review" label and want to get automerge working then you must set autoApprove=true in your Renovate config.
Renovate will now add the Code-Review label with the value "+2" to each of its "pull requests" (Gerrit-Change).
!!! note The bot's user account must have permission to give +2 for the Code-Review label.
The Renovate option automergeType: "branch" makes no sense for Gerrit, because there are no branches used to create pull requests.
It works similar to the default option "pr".
Optional features
You can use the statusCheckNames configuration to map any of the available branch checks (like minimumReleaseAge, mergeConfidence, and so on) to a Gerrit label.
For example, if you want to use the Merge Confidence feature and map the result of the Merge Confidence check to your Gerrit label "Renovate-Merge-Confidence" you can configure:
{
"statusCheckNames": {
"mergeConfidence": "Renovate-Merge-Confidence"
}
}
Also, labels in renovate.json will be mapped to hashtags in Gerrit. Example:
{
"packageRules": [
{
"matchDepTypes": ["devDependencies"],
"labels": ["renovate:devDependencies"]
}
]
}
Server version dependent features
We use the Gerrit Get Version REST API to fetch the server version.
You can use the experimental feature flag RENOVATE_X_PLATFORM_VERSION to set a specific server version.
By setting the server version yourself, you save an API call that fetches the server version.
- Use
hasfooter:Renovate-Branchsearch operator instead ofmessage:"Renovate-Branch: "for finding changes on Gerritv3.6.0or later - Use
subject:search operator instead ofmessage:for PR title search on Gerritv3.8.0or later.
Unsupported platform features/concepts
- Creating issues (not a Gerrit concept)
- Dependency Dashboard (needs issues first)