Watch
1
0
Fork
You've already forked pkg-proxy
1
mirror of https://github.com/git-pkgs/proxy.git synced 2026-11-10 16:19:16 -05:00
pkg-proxy/internal/config
Repository files (latest commit first)
Filename Latest commit message Latest commit date
simon chrzanowski 1979fb098e
Accept Swift source repository PURLs in the denylist and retention rules (#641)
* Accept Swift source repository PURLs in the denylist and retention rules

Closes #613. pkg:swift/github.com/apple/swift-nio, as SBOM tools and GHSA
write Swift packages, is resolved to its registry identity through the
upstream's /identifiers:

- Denylist entries are resolved at startup, and the proxy refuses to start
  when one can't be, since a skipped entry would let the version through.
- Retention keys are accepted at validation and kept pending. The
  retention loop resolves them before each sweep, and Swift isn't swept
  while any is pending, so a rule that keeps a package is never skipped.

The mirror's source URL helper moves to the handler as SwiftSourceURL.

* Resolve Swift source denylist entries in proxy mirror too

serve resolved source-form Swift denylist entries through the upstream,
but proxy mirror built its denylist directly, so such an entry never
matched a mirror download. Both now use server.ConfigureDenylist, and
neither runs when an entry can't be resolved.

* Apply Swift source policies to every listed identity

A Swift registry may list several identities for one source repository,
but a denylist entry or retention rule naming the repository only
covered the first. Denying pkg:swift/github.com/acme/widget@1.0.0 let
acme.widget through when the registry listed other.widget first, and a
never-evict rule cleared the cached apple.swift-nio archive when
other.swift-nio came first.

Both now cover every identity the registry lists. A retention rule that
conflicts with another rule for any of them stays pending, with none
applied. Mirroring a source PURL still downloads the first identity.
2026-10-31 11:34:05 +00:00
..
config.go Preserve Swift and Go compatibility when upgrading PURL (#642) 2026-10-31 09:49:35 +00:00
config_test.go Cache cooldown rewrites for a 24th of the shortest cooldown 2026-10-29 19:19:12 +01:00
denylist.go feat: add exact-version package denylist 2026-09-20 14:42:30 +05:30
denylist_test.go feat: add exact-version package denylist 2026-09-20 14:42:30 +05:30
git.go Serve Git repositories from a local cache (#492) 2026-10-21 11:47:16 +01:00
git_test.go Serve Git repositories from a local cache (#492) 2026-10-21 11:47:16 +01:00
hosted.go Serve hosted-only npm scopes and Composer vendors from pushed packages alone 2026-10-14 13:23:19 +02:00
hosted_test.go Serve hosted-only npm scopes and Composer vendors from pushed packages alone 2026-10-14 13:23:19 +02:00
maven_group_roots.txt Serve additional Maven repositories at /maven/{name}/ (#539) 2026-10-21 11:10:49 +01:00
mirror.go Re-mirror container images on a schedule (#508) 2026-10-18 18:33:13 +01:00
mirror_test.go Re-mirror container images on a schedule (#508) 2026-10-18 18:33:13 +01:00
request_timeouts_test.go Make response write and artifact download timeouts configurable (#531) 2026-10-19 08:54:21 +01:00
retention.go Accept Swift source repository PURLs in the denylist and retention rules (#641) 2026-10-31 11:34:05 +00:00
retention_test.go Add opt-in retention for generic artifacts (#513) 2026-10-19 08:43:57 +01:00