Repository navigation
Conversation
Run self-hosted Renovate installed from Repox, passing the selected Repox reader to the commands it runs, so repositories whose lockfiles pin the production Edge can replace the Mend-hosted app.
|
Code Review 👍 Approved with suggestions 0 closed / 2 findings🟡 Medium risk · The new action runs Renovate with repository write credentials and registry secrets, so misconfiguration could create unintended dependency or workflow changes. Adds a 💡 Bug: Usage example omits contents: read, so checkout fails on private repos📄 README.md:1634-1638 📄 README.md:1659-1665 The usage example's job-level Grant contents: read so actions/checkout can clone the repository💡 Quality: Edge section still scopes runner-based Repox selection to config-/build-📄 README.md:74 📄 README.md:84-86 📄 README.md:1681 📄 renovate/action.yml:19-22 The 🤖 Prompt for agentsVerification Rules 2/2 met Repos 2 inspected · PRs 3 inspectedFunctional validation No results Rules 2 passed 1 not applicable
Broader impact Repos 2 inspected PRs 3 inspectedCross-repo 2 repositories inspected 0 open impacts
Cross-PR 3 PRs inspected 0 open impacts
Auto-approval Not enabledFor more verification details, comment OptionsAuto-apply is off → Gitar will not commit updates to this branch. Comment with these commands to change the behavior for this request:
Was this helpful? React with 👍 / 👎 | Gitar |
| #### Required GitHub Permissions | ||
|
|
||
| - `id-token: write` | ||
|
|
||
| The other permissions come from the GitHub token used by Renovate. |
There was a problem hiding this comment.
💡 Bug: Usage example omits contents: read, so checkout fails on private repos
The usage example's job-level permissions: block grants only id-token: write. Once any permission is listed, every permission that isn't listed is set to none. That leaves the job's GITHUB_TOKEN without contents: read, so the actions/checkout step fails on private repositories. Private repos are a primary target here, since private-reader is the default role. The action needs that checkout because mise installs tools from the repository's mise config. Other examples in this README that run checkout grant contents: read alongside id-token: write. Add it here as well, and list it under Required GitHub Permissions.
Grant contents: read so actions/checkout can clone the repository:
permissions:
id-token: write
contents: read
Was this helpful? React with 👍 / 👎
| | `node-version` | Node.js version used to run Renovate | `24.11.0` | | ||
| | `github-token` | GitHub token used by Renovate | The repository's `renovate` GitHub App token from Vault | | ||
| | `artifactory-reader-role` | Suffix for the Artifactory reader role in Vault | `private-reader` for private repos, `public-reader` for public repos | | ||
| | `repox-url` | URL for Repox | Runner-dependent (see Edge section) | |
There was a problem hiding this comment.
💡 Quality: Edge section still scopes runner-based Repox selection to config-/build-
The renovate inputs table sends readers to the Edge section for the repox-url default (README.md:1681), and renovate/action.yml:22 uses the same runner-based default. The Edge section still says only "the config-* and build-* actions" pick the endpoint from runner.environment (README.md:74). It also tells self-hosted runners without Edge connectivity to set repox-url: https://repox.jfrog.io on every affected config-* and build-* action (README.md:84-86). An operator who follows that guidance will skip renovate, which still defaults to repox-internal.sonar.build on self-hosted runners, so its install from the Edge fails. Mention renovate in that section.
Was this helpful? React with 👍 / 👎
|
Not needed anymore: with split-horizon DNS, |



BUILD-13269: add a
renovateaction that runs self-hosted Renovate on the current repository.Repositories whose lockfiles pin the production Edge can't keep using the Mend-hosted Renovate app. Mend can't reach
repox-internal.sonar.build, so its lockfile updates fail or write SaaS URLs back (for example SonarSource/sonarqube-cli#1113). This action packages the workflow validated in SonarSource/sonarqube-cli#1120, so other repositories can reuse it.node-version, default 24.11.0) comes from mise, which also installs the repository's own tools, such as Bun, forbinarySource: global. Therenovatenpm package (renovate-version, default 43.257.5) is installed from the selected Repox, using a temporary npm user config.renovateGitHub App token in Vault, unlessgithub-tokenis set. The SaaS reader is exposed as theREPOX_TOKENRenovate secret, which the sharedSonarSource/renovate-confighost rules use.customEnvVariables:ARTIFACTORY_URL,ARTIFACTORY_USERNAME,ARTIFACTORY_ACCESS_TOKEN,BUN_CONFIG_REGISTRYandBUN_CONFIG_TOKEN. Callers can add toRENOVATE_SECRETSandRENOVATE_CUSTOM_ENV_VARIABLES.allowedCommands,force, …) are set asRENOVATE_*environment variables on the step.RENOVATE_REPOSITORIES,RENOVATE_ONBOARDINGandRENOVATE_BINARY_SOURCEdefault to the current repository,falseandglobal.Test plan:
spec/renovate_spec.shcovers the install command and npm config, the defaults, merging of caller values, and the failure without a GitHub token.sonar-xs(run 40531344523):Installing renovate@43.257.5 from https://repox-internal.sonar.build/artifactory/api/npm/npm/succeeded.bun install --ignore-scriptsand thebun installpost-upgrade task (Bun 1.4.4 from the repository'smise.toml). It opened Update dependency @sentry/cli to v3.8.2 - autoclosed sonarqube-cli#1122 (@sentry/cli3.8.2) and Update dependency @toon-format/toon to v4 sonarqube-cli#1123 (@toon-format/toon4).bun.lockpoints torepox-internal.sonar.build: 18 in #1122 and 2 in #1123.