Replace vendored third_party/k8s.io/test-infra/prow/ packages with
direct imports from sigs.k8s.io/prow/pkg/. This removes ~13,000 lines
of vendored code that was originally copied from kubernetes/test-infra
at commit d6acd1068fe6 (March 2023).
What changed:
- Rewrite all imports in 13 source files from vendored paths to
sigs.k8s.io/prow/pkg/{config/org,github,flagutil,logrusutil}
- Add sigs.k8s.io/prow v0.0.0-20260410153622-c210e98febf6 to go.mod
- Delete entire third_party/ directory (57 files of vendored code)
- Upgrade go directive from 1.25.0 to 1.25.8 (prow minimum)
- Align k8s.io/apimachinery to v0.32.9 (matches prow's k8s 0.32 stack)
- Downgrade google/gnostic-models to v0.6.9 (resolves yaml type conflict)
Why this is safe:
- The only local patches to vendored code (commit 19662c2) were
mechanical sets.String → sets.Set[string] backports from upstream
test-infra PRs #27793 and #30041, already present in sigs.k8s.io/prow
- No Bloomberg or project-specific customizations existed
- All tests pass, build is clean
Supersedes: uwu-tools#338
Signed-off-by: Stephen Augustus <foo@auggie.dev>
Co-Authored-By: Claude <noreply@anthropic.com>
Signed-off-by: Stephen Augustus <foo@auggie.dev>
Summary
third_party/k8s.io/test-infra/prow/packages with direct imports fromsigs.k8s.io/prow/pkg/third_party/directory (~13,000 lines of vendored code, 57 files)go-jose/v4to fix high-severity vulnerability (GHSA-78h2-9frx-2jm8)replacestatement fromgo.modContext
Peribolos has vendored prow packages under
third_party/since March 2023 (aa185b2), originally copied fromkubernetes/test-infraat commitd6acd1068fe6. After prow moved to its own repo (kubernetes-sigs/prow) in April 2024, the vendored code became unnecessary.Why this is safe
The only local modifications to the vendored code (
19662c2) were mechanicalsets.String→sets.Set[string]backports from upstream test-infra PRs (#27793, #30041). These changes are already present insigs.k8s.io/prow. No project-specific customizations exist.Import mapping
.../third_party/k8s.io/test-infra/prow/config/orgsigs.k8s.io/prow/pkg/config/org.../third_party/k8s.io/test-infra/prow/githubsigs.k8s.io/prow/pkg/github.../third_party/k8s.io/test-infra/prow/flagutilsigs.k8s.io/prow/pkg/flagutil.../third_party/k8s.io/test-infra/prow/logrusutilsigs.k8s.io/prow/pkg/logrusutilDependency changes
sigs.k8s.io/prow v0.0.0-20260410153622-c210e98febf6godirective: 1.25.0 → 1.25.8 (prow minimum)k8s.io/apimachineryto v0.32.9 (matches prow's k8s 0.32 stack)google/gnostic-modelsto v0.6.9 (resolves yaml type conflict)go-jose/v44.1.3 → 4.1.4 (fixes GHSA-78h2-9frx-2jm8)replacedirectiveSupersedes #338.
CI notes
codecov/projectreports a coverage drop (59.71% → 46.98%). This is expected: the vendoredthird_party/code was partially covered by org/ tests (they exercise the github client and flagutil code paths). Removing the vendored code removes those covered lines from the calculation. The actual peribolos source coverage is unchanged. This check is also failing on recently merged PRs (Bump stale codeql-action pins and add dependabot cooldown #575, Harden GitHub Actions workflows and improve security policy #574) — it is a pre-existing failure.Test plan
go build ./...passesgo test ./...passes (all existing tests)go mod tidyis cleanthird_party/remain in source code🤖 Generated with Claude Code