From 79989665de7bbb0d096932d991fcc3bb77f12cb2 Mon Sep 17 00:00:00 2001 From: Benjamin Komen Date: Tue, 29 Sep 2026 09:15:56 -0700 Subject: [PATCH 1/3] Remove Gradle dependency verification. verification-metadata.xml made every Dependabot version bump fail CI until checksums were regenerated by hand. Drop the file, the refresh-command comments, and the AGENTS.md section from #492, and ignore Sonar rule kotlin:S6474 (dependency verification) project-wide. --- AGENTS.md | 18 - build.gradle.kts | 8 +- gradle/verification-metadata.xml | 3314 ------------------------------ 3 files changed, 5 insertions(+), 3335 deletions(-) delete mode 100644 gradle/verification-metadata.xml diff --git a/AGENTS.md b/AGENTS.md index 8fe345c..ed68576 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -116,24 +116,6 @@ prod env for rate limits unless the user explicitly asks. Implementation: `RateLimitFilter` + `ClientIpKeyResolver` (IPv6 `/64`). Docs: README and `docker/README.md`. -## Dependabot / dependency bumps - -Dependabot only edits `gradle/libs.versions.toml`. This repo enables Gradle -dependency verification (`gradle/verification-metadata.xml`), so every version -bump PR must also refresh checksums or CI fails at `:compileKotlin` with -"Dependency verification failed" across Build, Docker boot, regression, and -Cloud Build (same root cause on every Dependabot Gradle PR). - -On the bump branch (after rebase onto `master`): - -```bash -./gradlew --write-verification-metadata sha256 --refresh-dependencies ktlintCheck jacocoTestReport bootJar -git add gradle/verification-metadata.xml -git commit -m "Refresh Gradle verification metadata for ." -``` - -Do not merge a Dependabot Gradle PR that only touches the version catalog. - ## PR / verify Before considering work done: diff --git a/build.gradle.kts b/build.gradle.kts index e7083d1..74dbfcf 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -81,9 +81,11 @@ sonar { if (System.getenv("GITHUB_ACTIONS") == "true") { property("sonar.qualitygate.wait", "true") } - // kotlin:S6474: checksums live in gradle/verification-metadata.xml. - // After a dependency bump, refresh with: - // ./gradlew --write-verification-metadata sha256 --refresh-dependencies ktlintCheck jacocoTestReport bootJar + // Gradle dependency verification is intentionally not used (it blocked + // every Dependabot bump), so ignore kotlin:S6474 across the project. + property("sonar.issue.ignore.multicriteria", "s6474") + property("sonar.issue.ignore.multicriteria.s6474.ruleKey", "kotlin:S6474") + property("sonar.issue.ignore.multicriteria.s6474.resourceKey", "**/*") } } diff --git a/gradle/verification-metadata.xml b/gradle/verification-metadata.xml deleted file mode 100644 index 3ed7d3f..0000000 --- a/gradle/verification-metadata.xml +++ /dev/null @@ -1,3314 +0,0 @@ - - - - true - false - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - From 86d903cd1e64a4b5c44de0f85614e9d58bff16b9 Mon Sep 17 00:00:00 2001 From: Benjamin Komen Date: Tue, 29 Sep 2026 09:24:14 -0700 Subject: [PATCH 2/3] Suppress project-level kotlin:S6474 via sonar.kotlin.gradleProjectRoot. --- build.gradle.kts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index 74dbfcf..52c92dd 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -82,7 +82,11 @@ sonar { property("sonar.qualitygate.wait", "true") } // Gradle dependency verification is intentionally not used (it blocked - // every Dependabot bump), so ignore kotlin:S6474 across the project. + // every Dependabot bump), so suppress kotlin:S6474. The "missing + // verification-metadata.xml" variant is a project-level issue that the + // file-pattern ignore below cannot match; sonar-kotlin only raises it + // when gradleProjectRoot == baseDir, so point it at a subdirectory. + property("sonar.kotlin.gradleProjectRoot", layout.projectDirectory.dir("gradle").asFile.absolutePath) property("sonar.issue.ignore.multicriteria", "s6474") property("sonar.issue.ignore.multicriteria.s6474.ruleKey", "kotlin:S6474") property("sonar.issue.ignore.multicriteria.s6474.resourceKey", "**/*") From 2c9e14b580da6be1702ce629dc35670056ac3591 Mon Sep 17 00:00:00 2001 From: Benjamin Komen Date: Tue, 29 Sep 2026 09:30:31 -0700 Subject: [PATCH 3/3] Revert "Suppress project-level kotlin:S6474 via sonar.kotlin.gradleProjectRoot." This reverts commit 86d903cd1e64a4b5c44de0f85614e9d58bff16b9. --- build.gradle.kts | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 52c92dd..74dbfcf 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -82,11 +82,7 @@ sonar { property("sonar.qualitygate.wait", "true") } // Gradle dependency verification is intentionally not used (it blocked - // every Dependabot bump), so suppress kotlin:S6474. The "missing - // verification-metadata.xml" variant is a project-level issue that the - // file-pattern ignore below cannot match; sonar-kotlin only raises it - // when gradleProjectRoot == baseDir, so point it at a subdirectory. - property("sonar.kotlin.gradleProjectRoot", layout.projectDirectory.dir("gradle").asFile.absolutePath) + // every Dependabot bump), so ignore kotlin:S6474 across the project. property("sonar.issue.ignore.multicriteria", "s6474") property("sonar.issue.ignore.multicriteria.s6474.ruleKey", "kotlin:S6474") property("sonar.issue.ignore.multicriteria.s6474.resourceKey", "**/*")