Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 35 additions & 0 deletions .github/renovate-central.json5
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
// Central renovate configuration for runs orchestrated by
// .github/workflows/renovate-schedule.yml. This file is the global config for
// every target repository listed in .github/renovate-repositories.json;
// repository-local configs (renovate.json[5], .github/renovate.json[5], ...)
// still apply per repository on top.
{
$schema: 'https://docs.renovatebot.com/renovate-schema.json',
// Commit author: intentionally NOT set via gitAuthor. The workflows run
// with platformCommit enabled and GitHub App tokens, so GitHub itself sets
// the commit author and renovate auto-discovers its own identity from
// whichever App's token the run uses — regardless of whether the run comes
// from the central sweeper or a repository-local workflow.
//
// gitIgnoredAuthors: commits with these author emails count as renovate's
// own when checking whether a branch was edited externally (otherwise the
// branch is skipped as "pr-edited"). List every GitHub App that may run
// renovate against the swept repositories, so branches written by one App's
// runs are accepted by another App's runs (e.g. central sweeper vs.
// repo-local runs with different credentials). A repository-level
// gitIgnoredAuthors REPLACES this list (non-mergeable) — repeat entries you
// still need. Keep the list tight: noreply author emails are spoofable.
// Derive an email: curl -s https://api.github.com/users/odgbot%5Bbot%5D | grep '"id"' -> <id>+<slug>[bot]@users.noreply.github.com
gitIgnoredAuthors: [
// (bare email only: renovate compares gitIgnoredAuthors against %ae/%ce
// author/committer emails, never against 'Name <email>')
// odgbot - production central sweeper for ODG (https://github.com/apps/odgbot)
'319464553+odgbot[bot]@users.noreply.github.com',
// ocmbot - will be used later again when we expand beyond ODG
'125909804+ocmbot[bot]@users.noreply.github.com',
],
// Add org-wide defaults here, e.g.:
// labels: ['dependencies'],
// timezone: 'Europe/Berlin',
// schedule: ['at any time'],
}
2 changes: 1 addition & 1 deletion .github/renovate-repositories.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
[
"open-component-model/odg-ui"
"open-component-model/.github"
]
77 changes: 46 additions & 31 deletions .github/renovate.json5
Original file line number Diff line number Diff line change
@@ -1,35 +1,50 @@
// Central renovate configuration for runs orchestrated by
// .github/workflows/renovate-schedule.yml. This file is the global config for
// every target repository listed in .github/renovate-repositories.json;
// repository-local configs (renovate.json[5], .github/renovate.json[5], ...)
// still apply per repository on top.
{
$schema: 'https://docs.renovatebot.com/renovate-schema.json',
// Commit author: intentionally NOT set via gitAuthor. The workflows run
// with platformCommit enabled and GitHub App tokens, so GitHub itself sets
// the commit author and renovate auto-discovers its own identity from
// whichever App's token the run uses — regardless of whether the run comes
// from the central sweeper or a repository-local workflow.
//
// gitIgnoredAuthors: commits with these author emails count as renovate's
// own when checking whether a branch was edited externally (otherwise the
// branch is skipped as "pr-edited"). List every GitHub App that may run
// renovate against the swept repositories, so branches written by one App's
// runs are accepted by another App's runs (e.g. central sweeper vs.
// repo-local runs with different credentials). A repository-level
// gitIgnoredAuthors REPLACES this list (non-mergeable) — repeat entries you
// still need. Keep the list tight: noreply author emails are spoofable.
// Derive an email: curl -s https://api.github.com/users/odgbot%5Bbot%5D | grep '"id"' -> <id>+<slug>[bot]@users.noreply.github.com
gitIgnoredAuthors: [
// (bare email only: renovate compares gitIgnoredAuthors against %ae/%ce
// author/committer emails, never against 'Name <email>')
// odgbot - production central sweeper for ODG (https://github.com/apps/odgbot)
'319464553+odgbot[bot]@users.noreply.github.com',
// ocmbot - will be used later again when we expand beyond ODG
'125909804+ocmbot[bot]@users.noreply.github.com',
extends: [
'config:recommended',
'config:best-practices',
'helpers:pinGitHubActionDigests',
'docker:pinDigests',
'security:openssf-scorecard',
':dependencyDashboard',
':rebaseStalePrs',
],
'internalChecksFilter': 'strict',
'minimumReleaseAge': '7 days',
'branchPrefix': 'renovate/',
prConcurrentLimit: 5,
prHourlyLimit: 0,
automerge: false,
automergeType: 'pr',
vulnerabilityAlerts: {
minimumReleaseAge: null,
automerge: false,
},
packageRules: [
{
// Majors wait as checkboxes in the dependency dashboard ("Pending
// Approval") instead of occupying prConcurrentLimit slots - tick one
// there to have its PR created when you're ready to work on it.
matchUpdateTypes: ['major'],
dependencyDashboardApproval: true,
},
{
matchUpdateTypes: ['patch'],
automerge: true,
},
{
matchManagers: ['github-actions'],
automerge: true,
},
],
customManagers: [
{
// Track the Renovate version used in the reusable workflow
customType: 'regex',
managerFilePatterns: ['.github/workflows/renovate.yml'],
matchStrings: ["renovate-version:\\s*'(?<currentValue>[^'@]+)(?:@(?<currentDigest>sha256:[a-f0-9]+))?'"],
depNameTemplate: 'ghcr.io/renovatebot/renovate',
datasourceTemplate: 'docker',
},
],
// Add org-wide defaults here, e.g.:
// labels: ['dependencies'],
// timezone: 'Europe/Berlin',
// schedule: ['at any time'],
}
1 change: 1 addition & 0 deletions .github/workflows/release-please.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ on:
paths:
- '.github/workflows/renovate.yml'
- '.github/workflows/renovate-schedule.yml'
- '.github/renovate-central.json5'
- '.github/renovate.json5'
- '.github/renovate-repositories.json'
- '.release-please-manifest.json'
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/renovate-schedule.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ on:
branches:
- main
paths:
- .github/renovate-central.json5
- .github/renovate.json5
- .github/renovate-repositories.json
- .github/workflows/renovate.yml
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/renovate.yml
Original file line number Diff line number Diff line change
Expand Up @@ -88,8 +88,8 @@ env:
# Path of the central config inside the central repository (checked out
# sparse into ./central below; RENOVATE_CONFIG_FILE points there for both
# validation and the renovate run itself).
central_config_file: .github/renovate.json5
RENOVATE_CONFIG_FILE: ${{ github.workspace }}/central/.github/renovate.json5
central_config_file: .github/renovate-central.json5
RENOVATE_CONFIG_FILE: ${{ github.workspace }}/central/.github/renovate-central.json5
# Central config location ("owner/repo@ref"), split into CENTRAL_REPO /
# CENTRAL_REF per job by the "Resolve central config location" step below —
# expression contexts cannot split strings. The default tracks the floating
Expand Down