chore(deps): update ghcr.io/git-pkgs/proxy docker tag to v0.10.0 #34

Open
svc-renovate wants to merge 1 commit from renovate/ghcr.io-git-pkgs-proxy-0.x into main
Collaborator

This PR contains the following updates:

Package Update Change
ghcr.io/git-pkgs/proxy minor v0.8.1 → v0.10.0

⚠️ Warning

Some dependencies could not be looked up. Check the Dependency Dashboard for more information.


Release Notes

git-pkgs/proxy (ghcr.io/git-pkgs/proxy)

v0.10.0

Compare Source

Proxy adds hosted npm and Composer packages, age-based cache retention, container image mirroring and schedules, and cache deletion through the API and web UI.

  • Add Chef Supermarket and Arch Linux proxy support, Go checksum database proxying, private npm and Composer package routes, and OCI referrers support.
  • Cache more Maven, Conan, and generic download artifacts. Improve archive browsing and support additional SBOM mirror inputs.
  • Reduce npm and Composer metadata processing costs, gzip cached responses, preserve metadata on upstream 304 responses, and stream Conda cooldown filtering.
  • Verify registry-provided artifact checksums, abort corrupt cached responses, limit upstream artifact sizes, restrict credential forwarding, and sandbox upstream content.
  • Separate artifact and metadata cache metrics, expose more failure details, respect upstream rate limits, and make response and artifact download timeouts configurable.
  • Update Go dependencies, including registries v0.11.0, enrichment v0.7.3, and purl v0.1.22.

Before upgrading:

  • Gradle build cache uploads are disabled by default. Instances that accept CI uploads need gradle.build_cache.read_only: false or PROXY_GRADLE_BUILD_CACHE_READ_ONLY=false.
  • storage.max_size now includes cached metadata. Existing installations may evict metadata or artifacts when the combined total exceeds the configured limit.
  • Cache hit and miss metrics now include a kind label for artifact or metadata; check custom Prometheus queries and dashboards.
  • proxy mirror returns a nonzero exit status when a package fails and refuses CLI mirroring while scanning is enabled.

Changelog

  • 086abeb A database refresh now fetches the signature as well and stores it for that exact database content, keyed by its digest. A signature requested later, after the upstream has moved on, is still the one for the database the client got, and a refresh that returns the same bytes keeps the cached signature, so it is served offline too. The database is fetched once more after its signature to catch a mirror that swapped both in between. A missing signature is remembered per database, so official repos answer 404 without going upstream.
  • 5ce445f A database signature that belongs to an older database is no longer served. When the database was refreshed and the signature refetch fails, the proxy answers 404 or 502 instead of falling back to the cached signature, which pacman would reject. Paths with a decoded ? or # are refused, since they would fetch one file and cache it under another name. The README now says that pacman -Sy only works offline with cache_metadata enabled.
  • d7a6a89 Abort blob writes when the download fails
  • 6857fad Abort the response when a cached artifact fails its integrity check (#​504)
  • bf0c784 Add Chef Supermarket proxy support for Berkshelf and Policyfiles (#​518)
  • ea696a7 Add a hosted config block and a bearer token check for writes
  • 599b2e1 Add a metadata_dates table for rewritten metadata dates
  • b7b7a64 Add a size limit for upstream artifacts
  • b664530 Add age-based retention for cached artifacts (#​428)
  • d643836 Add opt-in retention for generic artifacts (#​513)
  • 832a441 Add package routes for private Composer and npm registries (#​426)
  • 80fdd16 Add push, list and delete commands for hosted packages
  • 9532c6a Add upstream.go_sumdbs_offline for networks where only the proxy has egress
  • 513687c Answer uncached referrers tags with 404 when the upstream is down
  • 111b271 Arch Linux pacman repositories are now proxied at /arch/{name}/, with geo.mirror.pkgbuild.com as the built-in archlinux repository and more mirrors configurable under upstream.arch. Databases and file lists go through the metadata cache byte for byte, and a database signature is refreshed together with its database so the two always match. Packages and package signatures go to the artifact cache and stay available offline. The path is passed through unchanged, so Arch Linux ARM's $arch/$repo layout works too. README, config example, configuration docs and the dashboard have pacman instructions.
  • 094a962 At most 64 fetches keep running after their client hangs up; beyond that a fetch is tied to its client again, so nobody can start an unbounded number of large downloads and leave. A server test now checks that client requests actually get the detach marker.
  • fdd0c81 Build in version-pinned paths for well-known download hosts
  • cbb1978 Bump git-pkgs/integrity to v0.2.0
  • fc312a0 Bump github.com/aws/aws-sdk-go-v2/config from 1.33.6 to 1.33.7
  • b8d5cf4 Bump github.com/aws/aws-sdk-go-v2/service/ecr from 1.66.1 to 1.66.2
  • ba61c45 Bump github.com/prometheus/client_golang from 1.24.1 to 1.25.0
  • b884a5f Bump golang.org/x/sync from 0.23.0 to 0.24.0
  • 5683349 Cache Conan 2 recipe and package archives (#​431)
  • 6051e20 Cache Maven checksums and signatures as artifacts
  • 579ab79 Cache archive artifacts from Maven repositories (#​425)
  • d2a069f Cache configured version-pinned paths of generic upstreams (#​424)
  • 2e0f132 Check gofmt in CI and reformat (#​528)
  • 943009c Check that a data tile holds W records before caching it. Complete tiles are never fetched again, so a block page cached as one stayed for good.
  • 9a93ce0 Check tile sizes before caching them
  • dcf90cf Close the Composer download gaps left after #​430 (#​433)
  • 854182f Concurrent clients could still end up with a database and a signature that don't belong together. Databases are now stored under their digest like signatures, so a cache row and its bytes always agree, also with several replicas on shared storage. Writes for one database are serialized, and the signature recovery shares the refresh with database requests, so a slow fetch can no longer store an older database over a newer one. When the cache write fails, the proxy serves the database the cache still describes. Unchanged databases are no longer rewritten, and a remembered missing signature is asked for again after the metadata TTL. The new tests force these interleavings with storage and upstream hooks.
  • d56d436 Count cached metadata against max_size and evict it LRU (#​507)
  • 1584499 Cut memory use of npm metadata rewriting (#​413)
  • cff4b51 Date rewritten metadata by when its package started serving it
  • 8903a8c Date rewritten metadata by when the rewrite was made
  • 8bebc56 Delete cached artifacts through the API and the UI (#​491)
  • bf7d17d Derive cooldown metadata ETags from the rewrite's inputs
  • c0b2a20 Document how pushed versions appear in package metadata
  • 9eb88e4 Document upstream.go_sumdbs
  • 5332f1f Don't count a tree fresh in the cache as the database answering. The probe never asked it, and during an outage that kept lookups from remembering the failure, so offline mode waited for the upstream timeout on every request until the tree expired.
  • c1a597d Don't let the supported check hang, and don't take a block page for an answer
  • 1d88be5 Enable storage retention for alpine
  • 70ea921 Enable storage retention for cargo
  • 9c75e59 Enable storage retention for composer
  • ff4d5ca Enable storage retention for conan
  • bffba28 Enable storage retention for conda
  • 42b4303 Enable storage retention for cran
  • 3297800 Enable storage retention for deb
  • 20855ca Enable storage retention for gem
  • c61cb51 Enable storage retention for golang (#​442)
  • f3505ad Enable storage retention for helm
  • 743fbe5 Enable storage retention for hex
  • 8f30c6d Enable storage retention for julia
  • 90989eb Enable storage retention for maven (#​444)
  • 4b8678c Enable storage retention for npm (#​440)
  • dcfb9a8 Enable storage retention for nuget
  • b40a3f0 Enable storage retention for oci (#​443)
  • 48edbb8 Enable storage retention for pub
  • 18f410d Enable storage retention for pypi (#​441)
  • 42f459e Enable storage retention for rpm
  • f8ca190 Enable storage retention for swift
  • ea4c1ba Encode file paths when loading files in the source browser
  • bdec446 Exit with status 1 when proxy mirror fails to mirror a package (#​502)
  • 3adae30 Explain APT signing keys and add a deb822 example (#​429)
  • 3c09523 Fetch the pinned commit for Composer branch downloads (#​430)
  • 680a2da Fix gem filenames whose platform ends in a number
  • c3c1204 Fix hex tarballs whose version contains a hyphen
  • 0916eab Fix leftover /api/packages references to the hosted endpoints
  • 42df87e Forward data tiles without storing them. The go command never fetches them, and kept for good they would add up to the whole log; the record count check from before is no longer needed.
  • 3bbb5aa Give the detached fetch test time on slow runners
  • e9ecde7 Hold requests to an upstream that rate limits the proxy
  • b131db3 Isolate the recent failure history in tests
  • dc809b0 Join every Accept header on container manifest requests
  • 2ed0327 Keep fetching an artifact after the client that started the fetch disconnects. pacman gives up after 10 seconds without data, and since the proxy only starts sending once the whole file is stored, a large package on a slow upstream was cancelled on every try and never got cached. Client requests now mark their context so the shared fetch runs on context.WithoutCancel, still bounded by the artifact client timeout. Mirror jobs don't set the marker, so cancelling a job still aborts its fetches.
  • b2955ef Keep holds through late successes and away from the circuit breaker
  • 85b674f Keep the stored metadata on an upstream 304 (#​495)
  • ba5e6e8 Leave Composer dev branch archives unverified
  • eca224b Leave denied pushed versions out of package metadata
  • a9cff7f Limit how many version diffs run at once
  • 112fc59 List pushed Composer versions in package metadata
  • c566949 List pushed npm versions in package metadata
  • 496f272 List recent failures under each failure count on /ui/analytics
  • 4de5419 Make response write and artifact download timeouts configurable (#​531)
  • 83e2fb4 Make the Gradle build cache read-only by default, so a client that can reach the proxy can no longer overwrite cache entries; CI jobs that upload now need gradle.build_cache.read_only: false (or PROXY_GRADLE_BUILD_CACHE_READ_ONLY=false). The environment variable is parsed strictly, so a value like "yes" keeps uploads off and logs a warning instead of opening them. Fixes #​497. (#​509)
  • 055540a Manifests are now cached under a key that ignores the client's Accept header: a digest names one document, and a tag is shared by all clients that accept an index type, so Docker, containerd and Podman read the same entry and a pre-fetched image is found offline. Clients without index support keep their per-Accept entry, and the old keys are still written and read as fallback.
  • fd4e9b7 Mark Helm cooldown as supported in README
  • 87505c0 Mark pushed artifacts as local and keep them out of eviction
  • 61eeaf5 Merge remote-tracking branch 'origin/main' into issue-411-mirror-images
  • 02ae49d Merge remote-tracking branch 'origin/main' into issue-411-mirror-images
  • b0570bd Mirroring a tag now checks it with a HEAD first and reuses the cached manifest when the digest is unchanged, falls back to the cached tag when the upstream body is cut off, and keeps a tag that a client pull moved while the walk ran. The platform filter is checked across the whole image, so a nested index without the wanted platform no longer fails it, and a 304 for a per-Accept fallback entry only refreshes that client's own keys instead of overwriting the shared entry.
  • c2ab810 Move upstream.go_sumdbs_offline next to upstream.go in the configuration table.
  • 8265c7d Nest the hosted commands under proxy hosted
  • e0ab227 Never replace a pushed artifact with the upstream copy
  • f3f35df Note that streamed artifacts over the size limit are cut off
  • 544e1a5 Note that the container registry is pull-only
  • 16ebeaa On Postgres, metadata fetched_at is now stored in UTC, so metadata_ttl no longer expires hours late when the proxy runs east of UTC. Entries written before this expire late one last time and are stored in UTC on their next refresh. (#​435)
  • cf463c1 Only cache real pub archives on download (#​520)
  • e6aadb2 Only claim checksum database support when the database is reachable
  • 6a90fb4 Only send credentialed registry tokens to trusted registries
  • 2a957b9 Prefer the root composer.json of a pushed archive
  • 0c495fd Proxy the OCI referrers API in the container handler (#​427)
  • 5e66688 Push, list and delete npm and Composer archives through /api/hosted
  • c7f8e2f README: say when the go command still goes to the database itself
  • 8d96791 Re-mirror container images on a schedule (#​508)
  • e7449d1 Read the package manifest of pushed archives
  • 3b262f1 Record the detail behind each failure counter
  • c58cdae Refuse conda rules with more than a channel and a name
  • ad7f299 Refuse package mirroring from the CLI while scanning is enabled (#​493)
  • 729138d Reject package requests with ? or # in the decoded path (#​437)
  • fa7ae81 Request npm packuments in one format for downloads too (#​496)
  • d4e89b0 Resolve Composer downloads from the cached metadata (#​494)
  • 449683a Rewrite Composer metadata in place and keep it minified (#​418)
  • 1559be6 Route containerd ns mirror requests to configured registries (#​405)
  • cf7eafb Sandbox upstream content on package routes
  • f47dd2f Say that the 4 KiB limit on 404 text only applies with the metadata cache
  • 4f680dd Send ETag and Last-Modified with rewritten npm and Composer metadata
  • a97b690 Separate artifact and metadata cache metrics on /metrics and the analytics page (#​463)
  • e74e5ab Serve cached npm and Composer metadata gzip-compressed
  • 832c800 Serve diff2html from the proxy instead of jsDelivr
  • 69313c2 Serve hosted-only npm scopes and Composer vendors from pushed packages alone
  • c0ac418 Serve pushed artifacts when streaming upstream artifacts
  • 96241b9 Serve pushed npm tarballs before the cooldown check
  • 1c6cfae Serve the Go checksum database from its own URL
  • 054c45c Share the dates of rewritten metadata across replicas
  • 3dae0fb Stop UpsertPackage from clearing packages.source
  • aa0b543 Stop forwarding custom auth headers across redirects
  • f5e7599 Stop interpolating archive paths into inline handlers
  • 5d7855f Store mirrored NuGet ids lowercased
  • 8b3b933 Stream archives when listing and reading browsed files (#​408)
  • cae9c08 Stream conda repodata through the cooldown filter (#​527)
  • 1b20307 Test the probe timeout, the block pages and a damaged cached tile
  • 9f42425 Test upgrading cached metadata through the metadata_dates migration
  • 67fd1ad The mirror now resolves a tag without caching it, mirrors the image it points to, and stores the tag only once that image is complete, so a failed or interrupted mirror keeps the previously cached tag instead of pointing it at an image with missing layers.
  • 9d0175b Try configured generic_artifacts before built-in patterns
  • 5b5a848 Update Go dependencies (#​534)
  • d58dd3d Update x/net and remove unused production helpers
  • 03f0ebd Use shared archives browser for cached artifacts (#​512)
  • 6d771a8 Use shared cooldown package-pattern policy
  • 8e04713 Use shared registries size limits and rate-limit gate (#​516)
  • 5dfd01e Use shared sbom parser for mirror sources (#​510)
  • bf74d98 Verify npm and Composer archives against their SHA-1 shasum
  • 2d258dd Verify npm tarballs against dist.integrity
  • e3cdf73 Wait for the clock to move on in the fresh-tree test, since on Windows the first probe's success and the start of the lookup can get the same time.
  • 59f0203 When a signature has to be fetched on request because its fetch failed during the database refresh, it is now only served if it belongs to the database the proxy had cached at that point. If the upstream has published a new database in the meantime, the request fails with 502 instead of handing out a signature that cannot verify the database the client already has. The next sync gets the new pair.
  • 5b9a5fc When the shared tag entry holds a representation the client does not accept, the lookup now goes on to the client's own per-Accept entry instead of giving up, so a Docker-only client still gets its cached manifest list after an OCI index was cached for the same tag.
  • 03c8e68 Withhold Composer archives still in cooldown
  • 73ed6bf build(deps): bump github.com/aws/aws-sdk-go-v2/config (#​422)
  • a691e99 build(deps): bump github.com/aws/aws-sdk-go-v2/service/ecr (#​423)
  • 52e8b5c build(deps): bump modernc.org/sqlite from 1.59.0 to 1.60.1 (#​421)
  • 6e334b4 npm: version lookup returns 502 (#​419)
  • 7b6c64a proxy mirror and the mirror API now pre-fetch container images from pkg:docker and pkg:oci PURLs: the mirror walks index, platform manifests (with their attestations) and blobs through the container handler, so a later pull is served from cache even when the upstream is down. A --platform filter (platforms in the API) limits multi-arch images, repository_url only resolves to configured registries, and names, tags and digests are validated before anything is fetched.
  • cc18c88 proxy mirror now builds its upstream clients the same way as serve, so it follows OCI Bearer challenges, uses configured upstream credentials and the SSRF guard, and artifact downloads have no overall time limit. Before this the CLI used a plain client and Docker Hub answered every request with 401.

v0.9.1

Compare Source

Changelog

  • 36fe6ab Add a Grafana dashboard
  • 866e559 Add cooldown package pattern overrides (#​407)
  • b40a50a Add storage.cache_artifacts to serve artifacts without storing them (#​387)
  • 0501534 Add the /ui/analytics page
  • 3655000 Attribute requests to a caller and a client tool
  • 4827cb9 Batch cache hit writes
  • 8cc63c4 Cache rewritten npm and Composer metadata (#​402)
  • dc1fc5b Coalesce concurrent metadata fetches (#​400)
  • 4b1625b Copy inherited Composer fields shallowly when expanding (#​401)
  • 739bba3 Drop unused registry from TestUpdateEcosystemStatsSumsAliasedRows
  • 129e6c6 Filter cached packages by ecosystem using pills (#​319)
  • 76db945 Install development tools directly in CI (#​398)
  • 55ed6b9 Keep hit timestamps from moving backwards
  • 9dff45d Merge remote-tracking branch 'origin/main' into analytics-2-ecosystem-stats
  • fb04bb8 Name every mounted route in requestEcosystem
  • 4ebd805 Per-ecosystem cache and download statistics
  • 4b8c5a8 Report the per-ecosystem breakdown from GET /stats
  • 4261bcb Show the by-client table regardless of ui_request_sources
  • f60772d Support HTTP byte-range requests for local file cached artifact downloads (#​404)
  • 34985b5 Support npm content-addressed tarball URLs
  • 107301c build(deps): bump alpine from 3.24.1 to 3.24.2 (#​397)

v0.9.0

Compare Source

Changelog

  • c1f420a Add and align CI security and dependency automation
  • 73a9863 Assert omitted Helm releases are not downloadable
  • 8d3dacf Bump azure/setup-helm from 4.3.1 to 5.0.1 (#​332)
  • f0580d9 Bump docker/setup-qemu-action from 4.2.0 to 4.3.0 (#​331)
  • 0935c15 Bump github.com/aws/aws-sdk-go-v2/config from 1.32.40 to 1.33.2 (#​336)
  • b2817dc Bump github.com/aws/aws-sdk-go-v2/config from 1.33.2 to 1.33.4 (#​356)
  • f29c916 Bump github.com/aws/aws-sdk-go-v2/service/ecr from 1.61.0 to 1.64.0 (#​334)
  • 2ae6213 Bump github.com/aws/aws-sdk-go-v2/service/ecr from 1.64.0 to 1.65.0 (#​357)
  • 2aad8bf Bump github.com/git-pkgs/spdx from 0.3.1 to 0.3.2 (#​355)
  • 66a6d81 Bump github.com/prometheus/client_model from 0.6.2 to 0.6.3 (#​330)
  • 83e7e80 Bump golang.org/x/sync from 0.22.0 to 0.23.0 (#​335)
  • 4436130 Bump google.golang.org/grpc from 1.83.1 to 1.83.2 (#​346)
  • dc1ce8d Bump modernc.org/sqlite from 1.57.0 to 1.58.0 (#​337)
  • 7e4b13c Bump zizmorcore/zizmor-action from 0.6.2 to 0.6.3 (#​333)
  • b83bc0e Bump zizmorcore/zizmor-action from 0.6.3 to 0.6.4 (#​354)
  • 436155e Clear before deleting on eviction, and requeue failed reclaims
  • 7835f7a Discard a stale cache entry under the coalescing key (#​348)
  • 1001cd7 End an eviction pass that cannot evict anything
  • 499033b Exit non-zero when mirror denylist is invalid
  • 2736fe0 Fall back to embedded build info for Version (#​352)
  • c895e5b Fix NuGet cooldown enforcement for listings and downloads (#​340)
  • eb45cd5 Fix duplicate fetches and 502s on concurrent cache misses (#​329)
  • 8f09c1d Fix the handler test build
  • 4ce6c37 Give each fetch its own storage path
  • eb43505 Log and count requests aborted mid-relay
  • 2fef446 Mark Helm as completed in registry table (#​316)
  • 8b1e7cb Omit malformed Helm chart releases instead of failing the index
  • 0bab9bd Separate OCI request timeout from readiness probes in loopback test (#​347)
  • 00a49e2 Standardize the README license footer
  • 0089917 Stop writing fileblob's .attrs sidecar (#​328)
  • e635a62 Test that GCS Delete of a missing object returns nil
  • 5f0f3b0 Update enrichment to v0.7.2 (#​394)
  • 51caa17 Update git-pkgs dependencies (#​396)
  • 65f2bf5 Widen wall-clock bound in flaky probe timeout test
  • 94c11b4 align data in the dashboard table more nicely (#​318)
  • d8a8111 apply review changes
  • d14b240 build(deps): bump docker/build-push-action from 7.3.0 to 7.4.0
  • 3724c93 build(deps): bump docker/setup-buildx-action from 4.3.0 to 4.4.1
  • 15d5ac0 build(deps): bump docker/setup-qemu-action from 4.3.0 to 4.4.0
  • ccc80f8 build(deps): bump github.com/aws/aws-sdk-go-v2/config
  • 8bbe117 build(deps): bump github.com/aws/aws-sdk-go-v2/service/ecr
  • eedc290 build(deps): bump github.com/git-pkgs/archives from 0.7.0 to 0.7.1
  • 2a35d3d build(deps): bump github.com/git-pkgs/magic from 0.3.1 to 0.4.0
  • ceee79f build(deps): bump github.com/git-pkgs/registries from 0.9.1 to 0.9.2
  • 3611ff2 build(deps): bump github.com/git-pkgs/vers from 0.7.0 to 0.7.1
  • 442b591 build(deps): bump go.opentelemetry.io/otel/sdk from 1.44.0 to 1.45.0
  • 468e9e5 build(deps): bump golang.org/x/net from 0.58.0 to 0.59.0
  • fbb89c9 build(deps): bump modernc.org/sqlite from 1.58.0 to 1.59.0
  • bb2205a docker host is trimmed too much in the docs (#​317)
  • 658664a docs(debian): drop a stray space in a test comment
  • 46faf76 docs(debian): trim comments on the named-repositories change
  • 9788aa7 feat(debian): report a misspelled repository name
  • 8a51d04 feat(debian): serve additional APT archives at /debian/{name}/
  • 548a50d feat: add exact-version package denylist
  • c4f34b0 fix pnpm audit
  • e40c78f fix(conda): preserve gzip for large repodata indexes
  • 3db2cd5 fix(database): set connection pool limits for Postgres (#​350)
  • 8696a25 fix(handler): let the ProxyCached path request a per-call Accept-Encoding (#​324)
  • 429e745 fix(helm): support OCI references in HTTP repository indexes
  • a55f42e fix(mirror): match cached artifacts by resolved filename
  • be2a1f0 fix(server): tune the shared upstream transport defaults (#​351)
  • ac261cc fix: centralize pass-through response relaying
  • ba45227 test(database): drop every schema table in the Postgres fixture (#​349)
  • e738a21 test(handler): stop asserting on an upstream connection the proxy abandons

Configuration

📅 Schedule: (UTC)

  • Branch creation
    • "on the first day of the month"
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate CLI.

This PR contains the following updates: | Package | Update | Change | |---|---|---| | [ghcr.io/git-pkgs/proxy](https://github.com/git-pkgs/proxy) | minor | `v0.8.1` → `v0.10.0` | --- > ⚠️ **Warning** > > Some dependencies could not be looked up. Check the [Dependency Dashboard](issues/3) for more information. --- ### Release Notes <details> <summary>git-pkgs/proxy (ghcr.io/git-pkgs/proxy)</summary> ### [`v0.10.0`](https://github.com/git-pkgs/proxy/releases/tag/v0.10.0) [Compare Source](https://github.com/git-pkgs/proxy/compare/v0.9.1...v0.10.0) Proxy adds hosted npm and Composer packages, age-based cache retention, container image mirroring and schedules, and cache deletion through the API and web UI. - Add Chef Supermarket and Arch Linux proxy support, Go checksum database proxying, private npm and Composer package routes, and OCI referrers support. - Cache more Maven, Conan, and generic download artifacts. Improve archive browsing and support additional SBOM mirror inputs. - Reduce npm and Composer metadata processing costs, gzip cached responses, preserve metadata on upstream 304 responses, and stream Conda cooldown filtering. - Verify registry-provided artifact checksums, abort corrupt cached responses, limit upstream artifact sizes, restrict credential forwarding, and sandbox upstream content. - Separate artifact and metadata cache metrics, expose more failure details, respect upstream rate limits, and make response and artifact download timeouts configurable. - Update Go dependencies, including registries v0.11.0, enrichment v0.7.3, and purl v0.1.22. Before upgrading: - Gradle build cache uploads are disabled by default. Instances that accept CI uploads need `gradle.build_cache.read_only: false` or `PROXY_GRADLE_BUILD_CACHE_READ_ONLY=false`. - `storage.max_size` now includes cached metadata. Existing installations may evict metadata or artifacts when the combined total exceeds the configured limit. - Cache hit and miss metrics now include a `kind` label for `artifact` or `metadata`; check custom Prometheus queries and dashboards. - `proxy mirror` returns a nonzero exit status when a package fails and refuses CLI mirroring while scanning is enabled. #### Changelog - [`086abeb`](https://github.com/git-pkgs/proxy/commit/086abebe6eff924276cec5e5ab55fb2250bb1a72) A database refresh now fetches the signature as well and stores it for that exact database content, keyed by its digest. A signature requested later, after the upstream has moved on, is still the one for the database the client got, and a refresh that returns the same bytes keeps the cached signature, so it is served offline too. The database is fetched once more after its signature to catch a mirror that swapped both in between. A missing signature is remembered per database, so official repos answer 404 without going upstream. - [`5ce445f`](https://github.com/git-pkgs/proxy/commit/5ce445f5d3f64ba2bf49a785c745abd223bc2e91) A database signature that belongs to an older database is no longer served. When the database was refreshed and the signature refetch fails, the proxy answers 404 or 502 instead of falling back to the cached signature, which pacman would reject. Paths with a decoded ? or # are refused, since they would fetch one file and cache it under another name. The README now says that pacman -Sy only works offline with cache\_metadata enabled. - [`d7a6a89`](https://github.com/git-pkgs/proxy/commit/d7a6a891e389266bb9740d0d143daa348cef003d) Abort blob writes when the download fails - [`6857fad`](https://github.com/git-pkgs/proxy/commit/6857fad20ee0d0b0e55676a9d4af044517eaf8c9) Abort the response when a cached artifact fails its integrity check ([#&#8203;504](https://github.com/git-pkgs/proxy/issues/504)) - [`bf0c784`](https://github.com/git-pkgs/proxy/commit/bf0c784feb24fba7148d41f92d13b7d41bf9cae4) Add Chef Supermarket proxy support for Berkshelf and Policyfiles ([#&#8203;518](https://github.com/git-pkgs/proxy/issues/518)) - [`ea696a7`](https://github.com/git-pkgs/proxy/commit/ea696a7abc43a3fe3b5a21a738f212b618696cb5) Add a hosted config block and a bearer token check for writes - [`599b2e1`](https://github.com/git-pkgs/proxy/commit/599b2e1473d7a43861a5b9563ad2ddd83f5cc83f) Add a metadata\_dates table for rewritten metadata dates - [`b7b7a64`](https://github.com/git-pkgs/proxy/commit/b7b7a6423938ee9966bb5aa6e153c39816773932) Add a size limit for upstream artifacts - [`b664530`](https://github.com/git-pkgs/proxy/commit/b664530f889aa0a70405114ee6096089fd891d98) Add age-based retention for cached artifacts ([#&#8203;428](https://github.com/git-pkgs/proxy/issues/428)) - [`d643836`](https://github.com/git-pkgs/proxy/commit/d643836649c9cbaec105807641943ab128d488db) Add opt-in retention for generic artifacts ([#&#8203;513](https://github.com/git-pkgs/proxy/issues/513)) - [`832a441`](https://github.com/git-pkgs/proxy/commit/832a44178110a5db60eb274c1d1cf367ea935147) Add package routes for private Composer and npm registries ([#&#8203;426](https://github.com/git-pkgs/proxy/issues/426)) - [`80fdd16`](https://github.com/git-pkgs/proxy/commit/80fdd16719c5ee6a130b8aa3cf2076647495a1fa) Add push, list and delete commands for hosted packages - [`9532c6a`](https://github.com/git-pkgs/proxy/commit/9532c6a94e0e58245e24db47e3e63e45f413477f) Add upstream.go\_sumdbs\_offline for networks where only the proxy has egress - [`513687c`](https://github.com/git-pkgs/proxy/commit/513687ce102ba032ee30cd68b9ed89e640e986d8) Answer uncached referrers tags with 404 when the upstream is down - [`111b271`](https://github.com/git-pkgs/proxy/commit/111b271273ed8579ee402974c55e1604afe07a9f) Arch Linux pacman repositories are now proxied at /arch/{name}/, with geo.mirror.pkgbuild.com as the built-in archlinux repository and more mirrors configurable under upstream.arch. Databases and file lists go through the metadata cache byte for byte, and a database signature is refreshed together with its database so the two always match. Packages and package signatures go to the artifact cache and stay available offline. The path is passed through unchanged, so Arch Linux ARM's $arch/$repo layout works too. README, config example, configuration docs and the dashboard have pacman instructions. - [`094a962`](https://github.com/git-pkgs/proxy/commit/094a962697f80ba757070d8e7638ab1aa6495de6) At most 64 fetches keep running after their client hangs up; beyond that a fetch is tied to its client again, so nobody can start an unbounded number of large downloads and leave. A server test now checks that client requests actually get the detach marker. - [`fdd0c81`](https://github.com/git-pkgs/proxy/commit/fdd0c814eb69403a5fe2a566ac15945d95836aab) Build in version-pinned paths for well-known download hosts - [`cbb1978`](https://github.com/git-pkgs/proxy/commit/cbb1978026dd9a269509c70cb04aaca0aec58d3d) Bump git-pkgs/integrity to v0.2.0 - [`fc312a0`](https://github.com/git-pkgs/proxy/commit/fc312a0c5936c38e2d6104c1ebf70c57c5076831) Bump github.com/aws/aws-sdk-go-v2/config from 1.33.6 to 1.33.7 - [`b8d5cf4`](https://github.com/git-pkgs/proxy/commit/b8d5cf4f27c92f38425b6172b459ea25e168ac0d) Bump github.com/aws/aws-sdk-go-v2/service/ecr from 1.66.1 to 1.66.2 - [`ba61c45`](https://github.com/git-pkgs/proxy/commit/ba61c450777e100a4d8343d80b86318f5c029f10) Bump github.com/prometheus/client\_golang from 1.24.1 to 1.25.0 - [`b884a5f`](https://github.com/git-pkgs/proxy/commit/b884a5f63f64b0f344c9a6a261ff10b03198b021) Bump golang.org/x/sync from 0.23.0 to 0.24.0 - [`5683349`](https://github.com/git-pkgs/proxy/commit/56833497547587a9f90c94eca85ab4102144e220) Cache Conan 2 recipe and package archives ([#&#8203;431](https://github.com/git-pkgs/proxy/issues/431)) - [`6051e20`](https://github.com/git-pkgs/proxy/commit/6051e20adfd8274fcd875840557d918547042efd) Cache Maven checksums and signatures as artifacts - [`579ab79`](https://github.com/git-pkgs/proxy/commit/579ab79ef4349beeb8a9402c382de79edbad1120) Cache archive artifacts from Maven repositories ([#&#8203;425](https://github.com/git-pkgs/proxy/issues/425)) - [`d2a069f`](https://github.com/git-pkgs/proxy/commit/d2a069f6f2746f6bd5190e2feef0123542702a12) Cache configured version-pinned paths of generic upstreams ([#&#8203;424](https://github.com/git-pkgs/proxy/issues/424)) - [`2e0f132`](https://github.com/git-pkgs/proxy/commit/2e0f1322a2a99039c95f13bfb20da7b3e88b266f) Check gofmt in CI and reformat ([#&#8203;528](https://github.com/git-pkgs/proxy/issues/528)) - [`943009c`](https://github.com/git-pkgs/proxy/commit/943009c6692461e58e524d56728ad62302e46bb8) Check that a data tile holds W records before caching it. Complete tiles are never fetched again, so a block page cached as one stayed for good. - [`9a93ce0`](https://github.com/git-pkgs/proxy/commit/9a93ce05b4af6c35c7d3fdc27cc974387683746f) Check tile sizes before caching them - [`dcf90cf`](https://github.com/git-pkgs/proxy/commit/dcf90cfec3c595ec2632051bbf75dfddb69a26e6) Close the Composer download gaps left after [#&#8203;430](https://github.com/git-pkgs/proxy/issues/430) ([#&#8203;433](https://github.com/git-pkgs/proxy/issues/433)) - [`854182f`](https://github.com/git-pkgs/proxy/commit/854182fa28e59ddebbe08ed56bc502fb5670c5d9) Concurrent clients could still end up with a database and a signature that don't belong together. Databases are now stored under their digest like signatures, so a cache row and its bytes always agree, also with several replicas on shared storage. Writes for one database are serialized, and the signature recovery shares the refresh with database requests, so a slow fetch can no longer store an older database over a newer one. When the cache write fails, the proxy serves the database the cache still describes. Unchanged databases are no longer rewritten, and a remembered missing signature is asked for again after the metadata TTL. The new tests force these interleavings with storage and upstream hooks. - [`d56d436`](https://github.com/git-pkgs/proxy/commit/d56d4367c968a8a6f2b2a1f652cb6f191ed24d6e) Count cached metadata against max\_size and evict it LRU ([#&#8203;507](https://github.com/git-pkgs/proxy/issues/507)) - [`1584499`](https://github.com/git-pkgs/proxy/commit/1584499ac374b0f3de500881298ca5fc9ad5be3b) Cut memory use of npm metadata rewriting ([#&#8203;413](https://github.com/git-pkgs/proxy/issues/413)) - [`cff4b51`](https://github.com/git-pkgs/proxy/commit/cff4b5188d3129260520af6f4795b20f66561559) Date rewritten metadata by when its package started serving it - [`8903a8c`](https://github.com/git-pkgs/proxy/commit/8903a8c9c98003badb932de32a1f492a3a42ac90) Date rewritten metadata by when the rewrite was made - [`8bebc56`](https://github.com/git-pkgs/proxy/commit/8bebc560f7a11c5d1c6cc4bff56cf2a71dd58848) Delete cached artifacts through the API and the UI ([#&#8203;491](https://github.com/git-pkgs/proxy/issues/491)) - [`bf7d17d`](https://github.com/git-pkgs/proxy/commit/bf7d17d39a45edfd2fae3af6de5f992edded5924) Derive cooldown metadata ETags from the rewrite's inputs - [`c0b2a20`](https://github.com/git-pkgs/proxy/commit/c0b2a200c2230e31cab0712156d86001aab29830) Document how pushed versions appear in package metadata - [`9eb88e4`](https://github.com/git-pkgs/proxy/commit/9eb88e499ffe6214f7a43cc207df966d62496212) Document upstream.go\_sumdbs - [`5332f1f`](https://github.com/git-pkgs/proxy/commit/5332f1f5e0ffb564c6128932e25486b30b67ea22) Don't count a tree fresh in the cache as the database answering. The probe never asked it, and during an outage that kept lookups from remembering the failure, so offline mode waited for the upstream timeout on every request until the tree expired. - [`c1a597d`](https://github.com/git-pkgs/proxy/commit/c1a597d2d874c16a32fdb805ccb1106e47251d4f) Don't let the supported check hang, and don't take a block page for an answer - [`1d88be5`](https://github.com/git-pkgs/proxy/commit/1d88be53abcbbc22e285c50e2aa9a2bc5600e9c9) Enable storage retention for alpine - [`70ea921`](https://github.com/git-pkgs/proxy/commit/70ea9215c64a946ed40f03dc8ff09a42802aab1f) Enable storage retention for cargo - [`9c75e59`](https://github.com/git-pkgs/proxy/commit/9c75e59ef4d5249ae1fb696fd51bc39531af0a6b) Enable storage retention for composer - [`ff4d5ca`](https://github.com/git-pkgs/proxy/commit/ff4d5ca10d44e9df221954feae84043b4b7a1cb3) Enable storage retention for conan - [`bffba28`](https://github.com/git-pkgs/proxy/commit/bffba28262f139f796b21e26a24b233426a6420a) Enable storage retention for conda - [`42b4303`](https://github.com/git-pkgs/proxy/commit/42b4303b716e5026ae8e3674b70046bc6f243a76) Enable storage retention for cran - [`3297800`](https://github.com/git-pkgs/proxy/commit/329780050f908438fcdd0ed19c96c5c24bab5502) Enable storage retention for deb - [`20855ca`](https://github.com/git-pkgs/proxy/commit/20855cae210505557be584d72435d3ec14893575) Enable storage retention for gem - [`c61cb51`](https://github.com/git-pkgs/proxy/commit/c61cb51a0ea48aa6b2cb0e266e10cedd60231a0c) Enable storage retention for golang ([#&#8203;442](https://github.com/git-pkgs/proxy/issues/442)) - [`f3505ad`](https://github.com/git-pkgs/proxy/commit/f3505ad557e15b98cc77ac0e4cf164a22185e014) Enable storage retention for helm - [`743fbe5`](https://github.com/git-pkgs/proxy/commit/743fbe50264660af73fe69536aebdd0e6ce37dba) Enable storage retention for hex - [`8f30c6d`](https://github.com/git-pkgs/proxy/commit/8f30c6d47808ffe19a78ee8747c500fbe5a29b6b) Enable storage retention for julia - [`90989eb`](https://github.com/git-pkgs/proxy/commit/90989eb03056b6fd85687f25ef3e34daeef21b8f) Enable storage retention for maven ([#&#8203;444](https://github.com/git-pkgs/proxy/issues/444)) - [`4b8678c`](https://github.com/git-pkgs/proxy/commit/4b8678c2c5797e7204a0b9a866baf71d9f13b576) Enable storage retention for npm ([#&#8203;440](https://github.com/git-pkgs/proxy/issues/440)) - [`dcfb9a8`](https://github.com/git-pkgs/proxy/commit/dcfb9a820df0e692b59f3f1c21a0bc6bcb6866e0) Enable storage retention for nuget - [`b40a3f0`](https://github.com/git-pkgs/proxy/commit/b40a3f067a810dcef6f89220a77ab8dbae35b1e7) Enable storage retention for oci ([#&#8203;443](https://github.com/git-pkgs/proxy/issues/443)) - [`48edbb8`](https://github.com/git-pkgs/proxy/commit/48edbb8ba031b06bc6b0639d3122a441497915e5) Enable storage retention for pub - [`18f410d`](https://github.com/git-pkgs/proxy/commit/18f410d021f05c7f9f79996f09e0e897929c319e) Enable storage retention for pypi ([#&#8203;441](https://github.com/git-pkgs/proxy/issues/441)) - [`42f459e`](https://github.com/git-pkgs/proxy/commit/42f459e961c62ed6f3bf8806193e48260917fb56) Enable storage retention for rpm - [`f8ca190`](https://github.com/git-pkgs/proxy/commit/f8ca190274fbc5bfbda4d70d0158aef11e83b240) Enable storage retention for swift - [`ea4c1ba`](https://github.com/git-pkgs/proxy/commit/ea4c1ba1255bdc4692b1ca78ec120d8340bd28cf) Encode file paths when loading files in the source browser - [`bdec446`](https://github.com/git-pkgs/proxy/commit/bdec446b69d42930e6cc1f8f0d812254f60fd830) Exit with status 1 when proxy mirror fails to mirror a package ([#&#8203;502](https://github.com/git-pkgs/proxy/issues/502)) - [`3adae30`](https://github.com/git-pkgs/proxy/commit/3adae30f7eabb87893feb36febdbce3ac4bab13d) Explain APT signing keys and add a deb822 example ([#&#8203;429](https://github.com/git-pkgs/proxy/issues/429)) - [`3c09523`](https://github.com/git-pkgs/proxy/commit/3c095235f317cb3926905496dc1610f6c6db560a) Fetch the pinned commit for Composer branch downloads ([#&#8203;430](https://github.com/git-pkgs/proxy/issues/430)) - [`680a2da`](https://github.com/git-pkgs/proxy/commit/680a2daba168ae8acfe6df5c5219c2b01e1bb1ec) Fix gem filenames whose platform ends in a number - [`c3c1204`](https://github.com/git-pkgs/proxy/commit/c3c120401c205ec0b3eaccaeb68920c1c6dd5d78) Fix hex tarballs whose version contains a hyphen - [`0916eab`](https://github.com/git-pkgs/proxy/commit/0916eabe37069548c4e85a29c14ae4df8d44dee3) Fix leftover /api/packages references to the hosted endpoints - [`42df87e`](https://github.com/git-pkgs/proxy/commit/42df87e035054657feef6cbb77bcd95d48f92fa9) Forward data tiles without storing them. The go command never fetches them, and kept for good they would add up to the whole log; the record count check from before is no longer needed. - [`3bbb5aa`](https://github.com/git-pkgs/proxy/commit/3bbb5aa7a37622635128e017e78174eca5c0c49b) Give the detached fetch test time on slow runners - [`e9ecde7`](https://github.com/git-pkgs/proxy/commit/e9ecde70edefdc34cca8ba2aaa589ab207b7986a) Hold requests to an upstream that rate limits the proxy - [`b131db3`](https://github.com/git-pkgs/proxy/commit/b131db394d87f86fa0054df6c6d1bbec7fe4f776) Isolate the recent failure history in tests - [`dc809b0`](https://github.com/git-pkgs/proxy/commit/dc809b0762d2342df32f17acdfba406372444e1a) Join every Accept header on container manifest requests - [`2ed0327`](https://github.com/git-pkgs/proxy/commit/2ed0327946e10546688d7474bbe981da46ba736a) Keep fetching an artifact after the client that started the fetch disconnects. pacman gives up after 10 seconds without data, and since the proxy only starts sending once the whole file is stored, a large package on a slow upstream was cancelled on every try and never got cached. Client requests now mark their context so the shared fetch runs on context.WithoutCancel, still bounded by the artifact client timeout. Mirror jobs don't set the marker, so cancelling a job still aborts its fetches. - [`b2955ef`](https://github.com/git-pkgs/proxy/commit/b2955ef4583e027094fb89fded1e0d65e0e18783) Keep holds through late successes and away from the circuit breaker - [`85b674f`](https://github.com/git-pkgs/proxy/commit/85b674f2786c9614fd7bd9e289af3c17a5a6223b) Keep the stored metadata on an upstream 304 ([#&#8203;495](https://github.com/git-pkgs/proxy/issues/495)) - [`ba5e6e8`](https://github.com/git-pkgs/proxy/commit/ba5e6e84c53ab9e7554e8244cddc576d282590ef) Leave Composer dev branch archives unverified - [`eca224b`](https://github.com/git-pkgs/proxy/commit/eca224bb56ea81857b128ed3a38aa9e0a979ee48) Leave denied pushed versions out of package metadata - [`a9cff7f`](https://github.com/git-pkgs/proxy/commit/a9cff7fa600a6b26a84c50233211206965bf3f3d) Limit how many version diffs run at once - [`112fc59`](https://github.com/git-pkgs/proxy/commit/112fc590b792850e7990e27dcb27ad8a6ee7226f) List pushed Composer versions in package metadata - [`c566949`](https://github.com/git-pkgs/proxy/commit/c5669495732275b2d79d291734bb9cb377d50f36) List pushed npm versions in package metadata - [`496f272`](https://github.com/git-pkgs/proxy/commit/496f272fedbc75e1fb027114c91bcda5e5a2c5b6) List recent failures under each failure count on /ui/analytics - [`4de5419`](https://github.com/git-pkgs/proxy/commit/4de5419256a4c715f145f68bbafa299057c96dbc) Make response write and artifact download timeouts configurable ([#&#8203;531](https://github.com/git-pkgs/proxy/issues/531)) - [`83e2fb4`](https://github.com/git-pkgs/proxy/commit/83e2fb4bdaf69997c22841fb27beaf5facb47420) Make the Gradle build cache read-only by default, so a client that can reach the proxy can no longer overwrite cache entries; CI jobs that upload now need gradle.build\_cache.read\_only: false (or PROXY\_GRADLE\_BUILD\_CACHE\_READ\_ONLY=false). The environment variable is parsed strictly, so a value like "yes" keeps uploads off and logs a warning instead of opening them. Fixes [#&#8203;497](https://github.com/git-pkgs/proxy/issues/497). ([#&#8203;509](https://github.com/git-pkgs/proxy/issues/509)) - [`055540a`](https://github.com/git-pkgs/proxy/commit/055540a540614aa7d01dc550ca5cab451211b77b) Manifests are now cached under a key that ignores the client's Accept header: a digest names one document, and a tag is shared by all clients that accept an index type, so Docker, containerd and Podman read the same entry and a pre-fetched image is found offline. Clients without index support keep their per-Accept entry, and the old keys are still written and read as fallback. - [`fd4e9b7`](https://github.com/git-pkgs/proxy/commit/fd4e9b74b8fbc437afa9ea0f5c301d88c563058f) Mark Helm cooldown as supported in README - [`87505c0`](https://github.com/git-pkgs/proxy/commit/87505c01c199aa370c5d30ca12380dede6dff25d) Mark pushed artifacts as local and keep them out of eviction - [`61eeaf5`](https://github.com/git-pkgs/proxy/commit/61eeaf59ad3dfa6768c2b1b070e1ede88f713378) Merge remote-tracking branch 'origin/main' into issue-411-mirror-images - [`02ae49d`](https://github.com/git-pkgs/proxy/commit/02ae49d4013a7a9d0baca8f35079a922d6596955) Merge remote-tracking branch 'origin/main' into issue-411-mirror-images - [`b0570bd`](https://github.com/git-pkgs/proxy/commit/b0570bdf9d5d88afc33f7854a1967c47916f3006) Mirroring a tag now checks it with a HEAD first and reuses the cached manifest when the digest is unchanged, falls back to the cached tag when the upstream body is cut off, and keeps a tag that a client pull moved while the walk ran. The platform filter is checked across the whole image, so a nested index without the wanted platform no longer fails it, and a 304 for a per-Accept fallback entry only refreshes that client's own keys instead of overwriting the shared entry. - [`c2ab810`](https://github.com/git-pkgs/proxy/commit/c2ab81031e9752c382ce21d2d230af32c2dd3633) Move upstream.go\_sumdbs\_offline next to upstream.go in the configuration table. - [`8265c7d`](https://github.com/git-pkgs/proxy/commit/8265c7d44b9322d9bba597dfc6f77f4b983129ea) Nest the hosted commands under proxy hosted - [`e0ab227`](https://github.com/git-pkgs/proxy/commit/e0ab227f145640bdb49d02179035b54969edb749) Never replace a pushed artifact with the upstream copy - [`f3f35df`](https://github.com/git-pkgs/proxy/commit/f3f35df900bf23f67298d9bb307029d916522075) Note that streamed artifacts over the size limit are cut off - [`544e1a5`](https://github.com/git-pkgs/proxy/commit/544e1a5bdde698e6da82d73b77f31eee114a371f) Note that the container registry is pull-only - [`16ebeaa`](https://github.com/git-pkgs/proxy/commit/16ebeaa9759b203426f8973ee9352e3bfe26b735) On Postgres, metadata fetched\_at is now stored in UTC, so metadata\_ttl no longer expires hours late when the proxy runs east of UTC. Entries written before this expire late one last time and are stored in UTC on their next refresh. ([#&#8203;435](https://github.com/git-pkgs/proxy/issues/435)) - [`cf463c1`](https://github.com/git-pkgs/proxy/commit/cf463c1141bad90303412d0bc620ce5f7dc6f6a1) Only cache real pub archives on download ([#&#8203;520](https://github.com/git-pkgs/proxy/issues/520)) - [`e6aadb2`](https://github.com/git-pkgs/proxy/commit/e6aadb297cfd378550d73eb87d81aaa70ecf3805) Only claim checksum database support when the database is reachable - [`6a90fb4`](https://github.com/git-pkgs/proxy/commit/6a90fb411fef610caf510bf405da52c9f8843be6) Only send credentialed registry tokens to trusted registries - [`2a957b9`](https://github.com/git-pkgs/proxy/commit/2a957b92e90c09ddda3086bfd3aa4c3ead916c63) Prefer the root composer.json of a pushed archive - [`0c495fd`](https://github.com/git-pkgs/proxy/commit/0c495fd90620c77bd871afa1aebb94a30782823e) Proxy the OCI referrers API in the container handler ([#&#8203;427](https://github.com/git-pkgs/proxy/issues/427)) - [`5e66688`](https://github.com/git-pkgs/proxy/commit/5e66688873f8905632e17869d560195bca01ac3d) Push, list and delete npm and Composer archives through /api/hosted - [`c7f8e2f`](https://github.com/git-pkgs/proxy/commit/c7f8e2fc6469444c45393ef76366d8341e1a710a) README: say when the go command still goes to the database itself - [`8d96791`](https://github.com/git-pkgs/proxy/commit/8d96791f1a5083e754f341e521d0232401259582) Re-mirror container images on a schedule ([#&#8203;508](https://github.com/git-pkgs/proxy/issues/508)) - [`e7449d1`](https://github.com/git-pkgs/proxy/commit/e7449d15408c35fa4ee9609ee14326c11c9830ec) Read the package manifest of pushed archives - [`3b262f1`](https://github.com/git-pkgs/proxy/commit/3b262f101bf04154823e9570b0c44630a09b5a1f) Record the detail behind each failure counter - [`c58cdae`](https://github.com/git-pkgs/proxy/commit/c58cdaece9c60f51a7b5842461d65f4c2957eb57) Refuse conda rules with more than a channel and a name - [`ad7f299`](https://github.com/git-pkgs/proxy/commit/ad7f29919bb4ccd66bc0afa4084b007c46e19dec) Refuse package mirroring from the CLI while scanning is enabled ([#&#8203;493](https://github.com/git-pkgs/proxy/issues/493)) - [`729138d`](https://github.com/git-pkgs/proxy/commit/729138d778324d67d7b000fa3995b047c6ce87df) Reject package requests with ? or # in the decoded path ([#&#8203;437](https://github.com/git-pkgs/proxy/issues/437)) - [`fa7ae81`](https://github.com/git-pkgs/proxy/commit/fa7ae81c764a7c0bc293e18ab0f71c49723349ce) Request npm packuments in one format for downloads too ([#&#8203;496](https://github.com/git-pkgs/proxy/issues/496)) - [`d4e89b0`](https://github.com/git-pkgs/proxy/commit/d4e89b08da6968a4c02dd999e2dd93a46fa8028e) Resolve Composer downloads from the cached metadata ([#&#8203;494](https://github.com/git-pkgs/proxy/issues/494)) - [`449683a`](https://github.com/git-pkgs/proxy/commit/449683a67626b52d4e4b343aaaa4a41c1a52a799) Rewrite Composer metadata in place and keep it minified ([#&#8203;418](https://github.com/git-pkgs/proxy/issues/418)) - [`1559be6`](https://github.com/git-pkgs/proxy/commit/1559be63e27114b68b15513a1abb22a32dcde1a0) Route containerd ns mirror requests to configured registries ([#&#8203;405](https://github.com/git-pkgs/proxy/issues/405)) - [`cf7eafb`](https://github.com/git-pkgs/proxy/commit/cf7eafbbe83f2624f227d7afb01ba81c6aead1c6) Sandbox upstream content on package routes - [`f47dd2f`](https://github.com/git-pkgs/proxy/commit/f47dd2f91c5d198b2db8c470448e08efdc9c4b4b) Say that the 4 KiB limit on 404 text only applies with the metadata cache - [`4f680dd`](https://github.com/git-pkgs/proxy/commit/4f680ddbd0b1381d29465aa3b7d0f0971607a589) Send ETag and Last-Modified with rewritten npm and Composer metadata - [`a97b690`](https://github.com/git-pkgs/proxy/commit/a97b6908582ca463f246000b94b63aec7b608176) Separate artifact and metadata cache metrics on /metrics and the analytics page ([#&#8203;463](https://github.com/git-pkgs/proxy/issues/463)) - [`e74e5ab`](https://github.com/git-pkgs/proxy/commit/e74e5abc79523de0b1660fb434523fa690b91992) Serve cached npm and Composer metadata gzip-compressed - [`832c800`](https://github.com/git-pkgs/proxy/commit/832c800ea5dda86a194faac30185ba13cab3c314) Serve diff2html from the proxy instead of jsDelivr - [`69313c2`](https://github.com/git-pkgs/proxy/commit/69313c26d993c7efc05dda3c79687c1ddbd0b153) Serve hosted-only npm scopes and Composer vendors from pushed packages alone - [`c0ac418`](https://github.com/git-pkgs/proxy/commit/c0ac418160eb9581ec967dd13fadc2b59acc7d7a) Serve pushed artifacts when streaming upstream artifacts - [`96241b9`](https://github.com/git-pkgs/proxy/commit/96241b910b0feb8602f06de78a301b5a7763dc95) Serve pushed npm tarballs before the cooldown check - [`1c6cfae`](https://github.com/git-pkgs/proxy/commit/1c6cfae81360a94e70e8067dcbd0bd1bdf286246) Serve the Go checksum database from its own URL - [`054c45c`](https://github.com/git-pkgs/proxy/commit/054c45c5a76be02c5f9099344ecb8da967ba5b76) Share the dates of rewritten metadata across replicas - [`3dae0fb`](https://github.com/git-pkgs/proxy/commit/3dae0fbae0456a9d49d55a15c1dfe1412227606c) Stop UpsertPackage from clearing packages.source - [`aa0b543`](https://github.com/git-pkgs/proxy/commit/aa0b543ae8043154abffed0c071d6d212b6590b1) Stop forwarding custom auth headers across redirects - [`f5e7599`](https://github.com/git-pkgs/proxy/commit/f5e7599749ce47b2a65d172497c94851509b32dd) Stop interpolating archive paths into inline handlers - [`5d7855f`](https://github.com/git-pkgs/proxy/commit/5d7855ffc831bd30d6f37b4f8937c6c161eea87f) Store mirrored NuGet ids lowercased - [`8b3b933`](https://github.com/git-pkgs/proxy/commit/8b3b933fd4b8d28a5e533e37f65d2e2926941c38) Stream archives when listing and reading browsed files ([#&#8203;408](https://github.com/git-pkgs/proxy/issues/408)) - [`cae9c08`](https://github.com/git-pkgs/proxy/commit/cae9c08dfe2e8d959ba247c9358e99c8e00b21d2) Stream conda repodata through the cooldown filter ([#&#8203;527](https://github.com/git-pkgs/proxy/issues/527)) - [`1b20307`](https://github.com/git-pkgs/proxy/commit/1b20307e8179bb2b0c638eeb504495ebb38dda62) Test the probe timeout, the block pages and a damaged cached tile - [`9f42425`](https://github.com/git-pkgs/proxy/commit/9f424256460378f3d47bbb1f7ea20bb5ad347402) Test upgrading cached metadata through the metadata\_dates migration - [`67fd1ad`](https://github.com/git-pkgs/proxy/commit/67fd1ad6c1ee128455cd7a770c8e1f45c0a4d024) The mirror now resolves a tag without caching it, mirrors the image it points to, and stores the tag only once that image is complete, so a failed or interrupted mirror keeps the previously cached tag instead of pointing it at an image with missing layers. - [`9d0175b`](https://github.com/git-pkgs/proxy/commit/9d0175b1e2b40abb01dfeffa99f7f7e834ddfdf8) Try configured generic\_artifacts before built-in patterns - [`5b5a848`](https://github.com/git-pkgs/proxy/commit/5b5a848c654010f45ea2d4cf8fa8b36b0763b1d2) Update Go dependencies ([#&#8203;534](https://github.com/git-pkgs/proxy/issues/534)) - [`d58dd3d`](https://github.com/git-pkgs/proxy/commit/d58dd3dc3dfd2c36ab06da2f50c7ab0693d2633f) Update x/net and remove unused production helpers - [`03f0ebd`](https://github.com/git-pkgs/proxy/commit/03f0ebdd55207cdfad9b23bd7fe664edaec5d076) Use shared archives browser for cached artifacts ([#&#8203;512](https://github.com/git-pkgs/proxy/issues/512)) - [`6d771a8`](https://github.com/git-pkgs/proxy/commit/6d771a8d3aecfab94c60438ef609f38797aa48d0) Use shared cooldown package-pattern policy - [`8e04713`](https://github.com/git-pkgs/proxy/commit/8e04713425bc74d78aafb4f44ca6bbb29e3928a5) Use shared registries size limits and rate-limit gate ([#&#8203;516](https://github.com/git-pkgs/proxy/issues/516)) - [`5dfd01e`](https://github.com/git-pkgs/proxy/commit/5dfd01ea74fc04bfcfa436ec97bd216795a0aa9b) Use shared sbom parser for mirror sources ([#&#8203;510](https://github.com/git-pkgs/proxy/issues/510)) - [`bf74d98`](https://github.com/git-pkgs/proxy/commit/bf74d982d758c8c3e9bcef4612951f0f147aac8d) Verify npm and Composer archives against their SHA-1 shasum - [`2d258dd`](https://github.com/git-pkgs/proxy/commit/2d258ddc4bfc84cbe0d76013f878b31721378ca1) Verify npm tarballs against dist.integrity - [`e3cdf73`](https://github.com/git-pkgs/proxy/commit/e3cdf73a895969cebc520493c00e97804e2c9256) Wait for the clock to move on in the fresh-tree test, since on Windows the first probe's success and the start of the lookup can get the same time. - [`59f0203`](https://github.com/git-pkgs/proxy/commit/59f0203b00e28b162451dc8316cda474f9373ff1) When a signature has to be fetched on request because its fetch failed during the database refresh, it is now only served if it belongs to the database the proxy had cached at that point. If the upstream has published a new database in the meantime, the request fails with 502 instead of handing out a signature that cannot verify the database the client already has. The next sync gets the new pair. - [`5b9a5fc`](https://github.com/git-pkgs/proxy/commit/5b9a5fca6bf9441f00725d53d460dad7470c52a5) When the shared tag entry holds a representation the client does not accept, the lookup now goes on to the client's own per-Accept entry instead of giving up, so a Docker-only client still gets its cached manifest list after an OCI index was cached for the same tag. - [`03c8e68`](https://github.com/git-pkgs/proxy/commit/03c8e680cc8fc002fc18f045af764f0edfa5de47) Withhold Composer archives still in cooldown - [`73ed6bf`](https://github.com/git-pkgs/proxy/commit/73ed6bf5c60f83ced7b03742be85ee23293ee94d) build(deps): bump github.com/aws/aws-sdk-go-v2/config ([#&#8203;422](https://github.com/git-pkgs/proxy/issues/422)) - [`a691e99`](https://github.com/git-pkgs/proxy/commit/a691e992cc93334974e6574bd91ee92084801465) build(deps): bump github.com/aws/aws-sdk-go-v2/service/ecr ([#&#8203;423](https://github.com/git-pkgs/proxy/issues/423)) - [`52e8b5c`](https://github.com/git-pkgs/proxy/commit/52e8b5c2a4eec6eef64a6a9cd837e745f14bddd1) build(deps): bump modernc.org/sqlite from 1.59.0 to 1.60.1 ([#&#8203;421](https://github.com/git-pkgs/proxy/issues/421)) - [`6e334b4`](https://github.com/git-pkgs/proxy/commit/6e334b4c4220f9d969da5430d4f9aaafe37690bd) npm: version lookup returns 502 ([#&#8203;419](https://github.com/git-pkgs/proxy/issues/419)) - [`7b6c64a`](https://github.com/git-pkgs/proxy/commit/7b6c64af0a07ef062a0472e03d215cbc1bd2e619) proxy mirror and the mirror API now pre-fetch container images from pkg:docker and pkg:oci PURLs: the mirror walks index, platform manifests (with their attestations) and blobs through the container handler, so a later pull is served from cache even when the upstream is down. A --platform filter (platforms in the API) limits multi-arch images, repository\_url only resolves to configured registries, and names, tags and digests are validated before anything is fetched. - [`cc18c88`](https://github.com/git-pkgs/proxy/commit/cc18c889ad1b1e25e3bec4fc71b446668ffc2ed0) proxy mirror now builds its upstream clients the same way as serve, so it follows OCI Bearer challenges, uses configured upstream credentials and the SSRF guard, and artifact downloads have no overall time limit. Before this the CLI used a plain client and Docker Hub answered every request with 401. ### [`v0.9.1`](https://github.com/git-pkgs/proxy/releases/tag/v0.9.1) [Compare Source](https://github.com/git-pkgs/proxy/compare/v0.9.0...v0.9.1) #### Changelog - [`36fe6ab`](https://github.com/git-pkgs/proxy/commit/36fe6abef2c73b9c138040be13d579a9ec730217) Add a Grafana dashboard - [`866e559`](https://github.com/git-pkgs/proxy/commit/866e55928551ae8ee1ddbbacd229af449f3f7d3a) Add cooldown package pattern overrides ([#&#8203;407](https://github.com/git-pkgs/proxy/issues/407)) - [`b40a50a`](https://github.com/git-pkgs/proxy/commit/b40a50aad838250d2feb76a0c264abc8414d5966) Add storage.cache\_artifacts to serve artifacts without storing them ([#&#8203;387](https://github.com/git-pkgs/proxy/issues/387)) - [`0501534`](https://github.com/git-pkgs/proxy/commit/05015344cb5476b56ac2f1dd08265d063cb7f01c) Add the /ui/analytics page - [`3655000`](https://github.com/git-pkgs/proxy/commit/3655000b164bdb89e9b340d7b74b27f409fc0f65) Attribute requests to a caller and a client tool - [`4827cb9`](https://github.com/git-pkgs/proxy/commit/4827cb9d76a2778dc92844a16132c88a992aa0dd) Batch cache hit writes - [`8cc63c4`](https://github.com/git-pkgs/proxy/commit/8cc63c40eefa16ae09170a904e23d36179d8a441) Cache rewritten npm and Composer metadata ([#&#8203;402](https://github.com/git-pkgs/proxy/issues/402)) - [`dc1fc5b`](https://github.com/git-pkgs/proxy/commit/dc1fc5baf38ca61844f66d9df10d46be4aa390f5) Coalesce concurrent metadata fetches ([#&#8203;400](https://github.com/git-pkgs/proxy/issues/400)) - [`4b1625b`](https://github.com/git-pkgs/proxy/commit/4b1625b2eb7f1d262e1cfb4c1410cb13e2514d53) Copy inherited Composer fields shallowly when expanding ([#&#8203;401](https://github.com/git-pkgs/proxy/issues/401)) - [`739bba3`](https://github.com/git-pkgs/proxy/commit/739bba316cb61b4ac1288574b775e1696b00fcdb) Drop unused registry from TestUpdateEcosystemStatsSumsAliasedRows - [`129e6c6`](https://github.com/git-pkgs/proxy/commit/129e6c6c1b48dbe9e0f856713ce4eaf1b1c8c1f6) Filter cached packages by ecosystem using pills ([#&#8203;319](https://github.com/git-pkgs/proxy/issues/319)) - [`76db945`](https://github.com/git-pkgs/proxy/commit/76db94552fdb062cfb3fc0ecf29765dda10d93df) Install development tools directly in CI ([#&#8203;398](https://github.com/git-pkgs/proxy/issues/398)) - [`55ed6b9`](https://github.com/git-pkgs/proxy/commit/55ed6b9a1630e108c89901ba05e9de7c26db3d50) Keep hit timestamps from moving backwards - [`9dff45d`](https://github.com/git-pkgs/proxy/commit/9dff45d36c7eade8ae1c2edaf60ccd323682d1d9) Merge remote-tracking branch 'origin/main' into analytics-2-ecosystem-stats - [`fb04bb8`](https://github.com/git-pkgs/proxy/commit/fb04bb8dcb919d41a8f6a4280156e954eeb2ccad) Name every mounted route in requestEcosystem - [`4ebd805`](https://github.com/git-pkgs/proxy/commit/4ebd805ffcc8d0afd2b5b757cd34910810ce2c12) Per-ecosystem cache and download statistics - [`4b8c5a8`](https://github.com/git-pkgs/proxy/commit/4b8c5a89fb9d2678428fc75276d356b835a4e53d) Report the per-ecosystem breakdown from GET /stats - [`4261bcb`](https://github.com/git-pkgs/proxy/commit/4261bcbc3fa36118b34156730c1a91ab01bf02ee) Show the by-client table regardless of ui\_request\_sources - [`f60772d`](https://github.com/git-pkgs/proxy/commit/f60772d2d87d7ba69ff43c19fa38030fcf3a4fc5) Support HTTP byte-range requests for local file cached artifact downloads ([#&#8203;404](https://github.com/git-pkgs/proxy/issues/404)) - [`34985b5`](https://github.com/git-pkgs/proxy/commit/34985b54d9567181129a2cc961f3c2dc37b842ab) Support npm content-addressed tarball URLs - [`107301c`](https://github.com/git-pkgs/proxy/commit/107301c98447000cab4dc745afa814f0bbcb95f8) build(deps): bump alpine from 3.24.1 to 3.24.2 ([#&#8203;397](https://github.com/git-pkgs/proxy/issues/397)) ### [`v0.9.0`](https://github.com/git-pkgs/proxy/releases/tag/v0.9.0) [Compare Source](https://github.com/git-pkgs/proxy/compare/v0.8.1...v0.9.0) #### Changelog - [`c1f420a`](https://github.com/git-pkgs/proxy/commit/c1f420aafe5692d108520ccb478be49bc41be1dd) Add and align CI security and dependency automation - [`73a9863`](https://github.com/git-pkgs/proxy/commit/73a98636afb68941521602f6468166c1d35f5492) Assert omitted Helm releases are not downloadable - [`8d3dacf`](https://github.com/git-pkgs/proxy/commit/8d3dacf68bfe12f9efa15c8394a9ae892e492b6c) Bump azure/setup-helm from 4.3.1 to 5.0.1 ([#&#8203;332](https://github.com/git-pkgs/proxy/issues/332)) - [`f0580d9`](https://github.com/git-pkgs/proxy/commit/f0580d9fb160cce52b9ea707f289cde9d7134463) Bump docker/setup-qemu-action from 4.2.0 to 4.3.0 ([#&#8203;331](https://github.com/git-pkgs/proxy/issues/331)) - [`0935c15`](https://github.com/git-pkgs/proxy/commit/0935c1561a7ae269d7226b93cb3a64c185d6c5cb) Bump github.com/aws/aws-sdk-go-v2/config from 1.32.40 to 1.33.2 ([#&#8203;336](https://github.com/git-pkgs/proxy/issues/336)) - [`b2817dc`](https://github.com/git-pkgs/proxy/commit/b2817dc2131e974db07897f0b3ae1fa3a1693951) Bump github.com/aws/aws-sdk-go-v2/config from 1.33.2 to 1.33.4 ([#&#8203;356](https://github.com/git-pkgs/proxy/issues/356)) - [`f29c916`](https://github.com/git-pkgs/proxy/commit/f29c9166b5bac8d306701577a416be2d07955a24) Bump github.com/aws/aws-sdk-go-v2/service/ecr from 1.61.0 to 1.64.0 ([#&#8203;334](https://github.com/git-pkgs/proxy/issues/334)) - [`2ae6213`](https://github.com/git-pkgs/proxy/commit/2ae6213d3baf9939942c2af9a69f0fb4e230994a) Bump github.com/aws/aws-sdk-go-v2/service/ecr from 1.64.0 to 1.65.0 ([#&#8203;357](https://github.com/git-pkgs/proxy/issues/357)) - [`2aad8bf`](https://github.com/git-pkgs/proxy/commit/2aad8bfcecd4dccbdf38f52a9fb6530feacb05ac) Bump github.com/git-pkgs/spdx from 0.3.1 to 0.3.2 ([#&#8203;355](https://github.com/git-pkgs/proxy/issues/355)) - [`66a6d81`](https://github.com/git-pkgs/proxy/commit/66a6d812cc6be9a3ec286caf14ad5c6c97f7273f) Bump github.com/prometheus/client\_model from 0.6.2 to 0.6.3 ([#&#8203;330](https://github.com/git-pkgs/proxy/issues/330)) - [`83e7e80`](https://github.com/git-pkgs/proxy/commit/83e7e8047e43db940e35304e425f6a6c02d1b909) Bump golang.org/x/sync from 0.22.0 to 0.23.0 ([#&#8203;335](https://github.com/git-pkgs/proxy/issues/335)) - [`4436130`](https://github.com/git-pkgs/proxy/commit/44361300d3e21e361c697e52413d01dd2a705fba) Bump google.golang.org/grpc from 1.83.1 to 1.83.2 ([#&#8203;346](https://github.com/git-pkgs/proxy/issues/346)) - [`dc1ce8d`](https://github.com/git-pkgs/proxy/commit/dc1ce8d8fcbdcfca0662db5ccda8a2cbf9369860) Bump modernc.org/sqlite from 1.57.0 to 1.58.0 ([#&#8203;337](https://github.com/git-pkgs/proxy/issues/337)) - [`7e4b13c`](https://github.com/git-pkgs/proxy/commit/7e4b13ce52eec325d9e667bcc463eff322b36d24) Bump zizmorcore/zizmor-action from 0.6.2 to 0.6.3 ([#&#8203;333](https://github.com/git-pkgs/proxy/issues/333)) - [`b83bc0e`](https://github.com/git-pkgs/proxy/commit/b83bc0eed237c30384cd58765aa790a8850aa7cc) Bump zizmorcore/zizmor-action from 0.6.3 to 0.6.4 ([#&#8203;354](https://github.com/git-pkgs/proxy/issues/354)) - [`436155e`](https://github.com/git-pkgs/proxy/commit/436155e50cf474783a7acdcdc88e940f57c18f77) Clear before deleting on eviction, and requeue failed reclaims - [`7835f7a`](https://github.com/git-pkgs/proxy/commit/7835f7a7a94bb0cf9765098b022db4ed4d1790ac) Discard a stale cache entry under the coalescing key ([#&#8203;348](https://github.com/git-pkgs/proxy/issues/348)) - [`1001cd7`](https://github.com/git-pkgs/proxy/commit/1001cd772b416f2f160a11e608e7d63f7c5f2509) End an eviction pass that cannot evict anything - [`499033b`](https://github.com/git-pkgs/proxy/commit/499033b973fb333bed0f3799f11760ba0163255d) Exit non-zero when mirror denylist is invalid - [`2736fe0`](https://github.com/git-pkgs/proxy/commit/2736fe03d385b8916d168dfa81d5a0604efb40a6) Fall back to embedded build info for Version ([#&#8203;352](https://github.com/git-pkgs/proxy/issues/352)) - [`c895e5b`](https://github.com/git-pkgs/proxy/commit/c895e5b053db5ecfe57bdc113a1d5e76aae6f256) Fix NuGet cooldown enforcement for listings and downloads ([#&#8203;340](https://github.com/git-pkgs/proxy/issues/340)) - [`eb45cd5`](https://github.com/git-pkgs/proxy/commit/eb45cd532b762beae05518abb77afde014d2e043) Fix duplicate fetches and 502s on concurrent cache misses ([#&#8203;329](https://github.com/git-pkgs/proxy/issues/329)) - [`8f09c1d`](https://github.com/git-pkgs/proxy/commit/8f09c1dc30d24d5f2c1873fb0681ca77ae168675) Fix the handler test build - [`4ce6c37`](https://github.com/git-pkgs/proxy/commit/4ce6c37bd9b7872c2061d86bed407b56d2c4b4dc) Give each fetch its own storage path - [`eb43505`](https://github.com/git-pkgs/proxy/commit/eb4350568c947308c1a918027de051f6d4eb92d1) Log and count requests aborted mid-relay - [`2fef446`](https://github.com/git-pkgs/proxy/commit/2fef44630b1135042c921301aa16385bef29f715) Mark Helm as completed in registry table ([#&#8203;316](https://github.com/git-pkgs/proxy/issues/316)) - [`8b1e7cb`](https://github.com/git-pkgs/proxy/commit/8b1e7cbd32262f40a18b147416262005203a830e) Omit malformed Helm chart releases instead of failing the index - [`0bab9bd`](https://github.com/git-pkgs/proxy/commit/0bab9bd0af5e44bfd70746f37dac10018bf250c4) Separate OCI request timeout from readiness probes in loopback test ([#&#8203;347](https://github.com/git-pkgs/proxy/issues/347)) - [`00a49e2`](https://github.com/git-pkgs/proxy/commit/00a49e2c4031c058a149f371d88e1106bb1e56bc) Standardize the README license footer - [`0089917`](https://github.com/git-pkgs/proxy/commit/0089917485c5bc02fbd01f797944e908d8be04d1) Stop writing fileblob's .attrs sidecar ([#&#8203;328](https://github.com/git-pkgs/proxy/issues/328)) - [`e635a62`](https://github.com/git-pkgs/proxy/commit/e635a62e2c69423fadb114a2524cb243a4c5f11d) Test that GCS Delete of a missing object returns nil - [`5f0f3b0`](https://github.com/git-pkgs/proxy/commit/5f0f3b034a74ece4ebffa93c6e9ca625007abe89) Update enrichment to v0.7.2 ([#&#8203;394](https://github.com/git-pkgs/proxy/issues/394)) - [`51caa17`](https://github.com/git-pkgs/proxy/commit/51caa17d5ed6c2477a3f5dfa77d86ac3c9804e83) Update git-pkgs dependencies ([#&#8203;396](https://github.com/git-pkgs/proxy/issues/396)) - [`65f2bf5`](https://github.com/git-pkgs/proxy/commit/65f2bf52b157baabb79665fda927fea7b1d08fe4) Widen wall-clock bound in flaky probe timeout test - [`94c11b4`](https://github.com/git-pkgs/proxy/commit/94c11b4b3b781d43fd8b89746f306fa80be95cf8) align data in the dashboard table more nicely ([#&#8203;318](https://github.com/git-pkgs/proxy/issues/318)) - [`d8a8111`](https://github.com/git-pkgs/proxy/commit/d8a811148c49c0ecfb47ef420a27a8573ae3b1da) apply review changes - [`d14b240`](https://github.com/git-pkgs/proxy/commit/d14b24065459a4da1f3e4f62bb05551c04916d36) build(deps): bump docker/build-push-action from 7.3.0 to 7.4.0 - [`3724c93`](https://github.com/git-pkgs/proxy/commit/3724c93626f51e395ea34cbd2b6c2aa33365fe61) build(deps): bump docker/setup-buildx-action from 4.3.0 to 4.4.1 - [`15d5ac0`](https://github.com/git-pkgs/proxy/commit/15d5ac09b8c7f0150ea99ed2692dc9187ef73265) build(deps): bump docker/setup-qemu-action from 4.3.0 to 4.4.0 - [`ccc80f8`](https://github.com/git-pkgs/proxy/commit/ccc80f8449fc0837cec953e8ea31ace6368f11da) build(deps): bump github.com/aws/aws-sdk-go-v2/config - [`8bbe117`](https://github.com/git-pkgs/proxy/commit/8bbe117e84a09be62814078a4ab0e0614200ecb1) build(deps): bump github.com/aws/aws-sdk-go-v2/service/ecr - [`eedc290`](https://github.com/git-pkgs/proxy/commit/eedc2908dfb5537b5423f59d9ae8fa13708fbcaf) build(deps): bump github.com/git-pkgs/archives from 0.7.0 to 0.7.1 - [`2a35d3d`](https://github.com/git-pkgs/proxy/commit/2a35d3df90db783cdb0ad322831ac60b7f1a7836) build(deps): bump github.com/git-pkgs/magic from 0.3.1 to 0.4.0 - [`ceee79f`](https://github.com/git-pkgs/proxy/commit/ceee79f123e0a2d9fab44a33599a383df0ccc451) build(deps): bump github.com/git-pkgs/registries from 0.9.1 to 0.9.2 - [`3611ff2`](https://github.com/git-pkgs/proxy/commit/3611ff2fa22f754dfb98fc7a731d2ec6982def17) build(deps): bump github.com/git-pkgs/vers from 0.7.0 to 0.7.1 - [`442b591`](https://github.com/git-pkgs/proxy/commit/442b5913492cf152741c5b50b9c09b5ffe0e735e) build(deps): bump go.opentelemetry.io/otel/sdk from 1.44.0 to 1.45.0 - [`468e9e5`](https://github.com/git-pkgs/proxy/commit/468e9e564df6dc2d60a3df687cc3d9fc95a46d67) build(deps): bump golang.org/x/net from 0.58.0 to 0.59.0 - [`fbb89c9`](https://github.com/git-pkgs/proxy/commit/fbb89c9d783d360354fa384cb59bba239c1648f8) build(deps): bump modernc.org/sqlite from 1.58.0 to 1.59.0 - [`bb2205a`](https://github.com/git-pkgs/proxy/commit/bb2205ad76c4aaa5acb80b341f7bada5b27eebca) docker host is trimmed too much in the docs ([#&#8203;317](https://github.com/git-pkgs/proxy/issues/317)) - [`658664a`](https://github.com/git-pkgs/proxy/commit/658664a144ed428a51200d07fcbdad945ed7b61d) docs(debian): drop a stray space in a test comment - [`46faf76`](https://github.com/git-pkgs/proxy/commit/46faf76ae33e85c5e2dd82e719f738aedef3747c) docs(debian): trim comments on the named-repositories change - [`9788aa7`](https://github.com/git-pkgs/proxy/commit/9788aa70bc5053143409b3a3576be3412ef58cc6) feat(debian): report a misspelled repository name - [`8a51d04`](https://github.com/git-pkgs/proxy/commit/8a51d0401158d88d2af54314cbb72ce33aa136ef) feat(debian): serve additional APT archives at /debian/{name}/ - [`548a50d`](https://github.com/git-pkgs/proxy/commit/548a50d56e5a84b161af18ed3791755522d902e4) feat: add exact-version package denylist - [`c4f34b0`](https://github.com/git-pkgs/proxy/commit/c4f34b07b4942da0e83cd80b54ec3754437f9236) fix pnpm audit - [`e40c78f`](https://github.com/git-pkgs/proxy/commit/e40c78f72aef47db0011d4e71571b36c5872eed1) fix(conda): preserve gzip for large repodata indexes - [`3db2cd5`](https://github.com/git-pkgs/proxy/commit/3db2cd5c71e4ca11db6d693a6eafa12ca36cb423) fix(database): set connection pool limits for Postgres ([#&#8203;350](https://github.com/git-pkgs/proxy/issues/350)) - [`8696a25`](https://github.com/git-pkgs/proxy/commit/8696a257f502b437072b9f200fd5e6af56e4131b) fix(handler): let the ProxyCached path request a per-call Accept-Encoding ([#&#8203;324](https://github.com/git-pkgs/proxy/issues/324)) - [`429e745`](https://github.com/git-pkgs/proxy/commit/429e7458e406ced4b3d311adae8170d5057a3031) fix(helm): support OCI references in HTTP repository indexes - [`a55f42e`](https://github.com/git-pkgs/proxy/commit/a55f42ec807bd31f352c919a6d2654892e28750c) fix(mirror): match cached artifacts by resolved filename - [`be2a1f0`](https://github.com/git-pkgs/proxy/commit/be2a1f05d2dc35cd47bdef37cd5b959c9eddd630) fix(server): tune the shared upstream transport defaults ([#&#8203;351](https://github.com/git-pkgs/proxy/issues/351)) - [`ac261cc`](https://github.com/git-pkgs/proxy/commit/ac261cc34db3177990f69bc4e853c06520cef684) fix: centralize pass-through response relaying - [`ba45227`](https://github.com/git-pkgs/proxy/commit/ba45227e0307c7bea4defb42523b62df4d573724) test(database): drop every schema table in the Postgres fixture ([#&#8203;349](https://github.com/git-pkgs/proxy/issues/349)) - [`e738a21`](https://github.com/git-pkgs/proxy/commit/e738a21a2ab57a1b0526c1b2ddd8a599d273c70e) test(handler): stop asserting on an upstream connection the proxy abandons </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - "on the first day of the month" - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate CLI](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xNC45IiwidXBkYXRlZEluVmVyIjoiNDQuMTQuOSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIl19-->
This pull request can be merged automatically.
This branch is out-of-date with the base branch
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin renovate/ghcr.io-git-pkgs-proxy-0.x:renovate/ghcr.io-git-pkgs-proxy-0.x
git switch renovate/ghcr.io-git-pkgs-proxy-0.x

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch main
git merge --no-ff renovate/ghcr.io-git-pkgs-proxy-0.x
git switch renovate/ghcr.io-git-pkgs-proxy-0.x
git rebase main
git switch main
git merge --ff-only renovate/ghcr.io-git-pkgs-proxy-0.x
git switch renovate/ghcr.io-git-pkgs-proxy-0.x
git rebase main
git switch main
git merge --no-ff renovate/ghcr.io-git-pkgs-proxy-0.x
git switch main
git merge --squash renovate/ghcr.io-git-pkgs-proxy-0.x
git switch main
git merge --ff-only renovate/ghcr.io-git-pkgs-proxy-0.x
git switch main
git merge renovate/ghcr.io-git-pkgs-proxy-0.x
git push origin main
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
sophie/homelab!34
No description provided.