Skip to content

Commit a35f254

Browse files
chore(deps): automate Gemfile.lock maintenance (phase 1) (#34666)
* chore(deps): automate Gemfile.lock maintenance (phase 1) Automate Gemfile.lock generation and periodic maintenance for compliance mandate https://b.corp.google.com/issues/509981628. * fix(deps): exclude spanner from default batch and force-stage generated lockfiles * fix(ci): pin action references to SHAs and harden workflow permissions per zizmor audit * fix(deps): remove spanner from renovate config and scope lockfile staging * fix(deps): remove Gemfile.lock from gitignores and refine Phase 1 target list Remove Gemfile.lock from root and Phase 1 gem .gitignore files so lockfiles can be tracked. Remove google-cloud-spanner from Phase 1 target matrix in generate-lockfiles.yml and renovate.json as it is hosted in ruby-spanner. * fix(deps): scope Phase 1 lockfiles and remove external write action Restore Gemfile.lock in root .gitignore and use explicit !Gemfile.lock negation rules in Phase 1 libraries per reviewer recommendation. Remove third-party write action (generate-lockfiles.yml) to eliminate software supply chain risk in GitHub Actions runners. Check in initial Gemfile.lock files directly for Phase 1 libraries (google-cloud-core, google-cloud-storage, google-cloud-pubsub, google-cloud-bigquery, google-cloud-errors). * fix(deps): restrict Renovate bundler manager to Phase 1 target libraries Update renovate.json syntax to use modern config:recommended and managerFilePatterns to restrict file scanning to the 5 Phase 1 libraries. * fix(deps): explicitly disable Renovate processing for non-Phase 1 libraries Add negation matching rules (!google-cloud-core/**, etc.) with enabled: false to packageRules in renovate.json. This ensures that while Renovate discovers all Gemfiles during initial repository extraction, all 881 non-Phase 1 libraries are completely disabled and dropped from update evaluation. --------- Co-authored-by: Yoshi Automation Bot <yoshi-automation@google.com>
1 parent 3d3e796 commit a35f254

11 files changed

Lines changed: 1703 additions & 2 deletions

File tree

.github/renovate.json

Lines changed: 42 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,46 @@
11
{
2+
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
23
"extends": [
3-
"config:base"
4+
"config:recommended"
45
],
5-
"rangeStrategy": "widen"
6+
"semanticCommits": "enabled",
7+
"semanticCommitType": "chore",
8+
"semanticCommitScope": "deps",
9+
"rangeStrategy": "widen",
10+
"lockFileMaintenance": {
11+
"enabled": false
12+
},
13+
"packageRules": [
14+
{
15+
"description": "Disable Renovate processing for non-Phase 1 gems during phased rollout",
16+
"matchFileNames": [
17+
"!google-cloud-core/**",
18+
"!google-cloud-storage/**",
19+
"!google-cloud-pubsub/**",
20+
"!google-cloud-bigquery/**",
21+
"!google-cloud-errors/**"
22+
],
23+
"enabled": false
24+
},
25+
{
26+
"description": "Phase 1: Core & Handwritten Gems Lockfile Rollout",
27+
"matchFileNames": [
28+
"google-cloud-core/**",
29+
"google-cloud-storage/**",
30+
"google-cloud-pubsub/**",
31+
"google-cloud-bigquery/**",
32+
"google-cloud-errors/**"
33+
],
34+
"groupName": "core handwritten gems lockfiles",
35+
"rangeStrategy": "update-lockfile",
36+
"lockFileMaintenance": {
37+
"enabled": true,
38+
"automerge": false,
39+
"schedule": [
40+
"before 5am on monday"
41+
],
42+
"commitMessageAction": "maintain Gemfile.lock files"
43+
}
44+
}
45+
]
646
}

google-cloud-bigquery/.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,6 @@ jsondoc/*
77

88
# Ignore YARD stuffs
99
.yardoc
10+
11+
# Allow tracking Gemfile.lock for Phase 1 rollout
12+
!Gemfile.lock

0 commit comments

Comments
 (0)