2025-09-01 - 2026-09-01
Overview
42 Releases published by 2 users
Published
v3.11.1
Published
v3.11.0
Published
v3.10.1
Published
v3.10.0
Published
v3.9.1
Published
v3.9.0
Published
v3.8.0
Published
v3.7.7
Published
v3.7.6
Published
v3.7.5
Published
v3.7.4
Published
v3.7.3
Published
v3.7.2
Published
v3.7.1
Published
v3.7.0
Published
v3.6.5
Published
v3.6.4
Published
v3.6.3
Published
v3.6.2
Published
v3.6.0
Published
v3.6.1
Published
v3.5.0
Published
v3.4.0
Published
v3.3.0
Published
v3.2.0
Published
v3.1.0
Published
v3.0.0
Published
v2.7.3
Published
v2.7.2
feat: cache parsed member indexes as msgpack to skip YAML re-parse on rebuild (#40)
Published
v2.7.1
Published
v2.7.0
Published
v2.6.0
Published
v2.5.0
Published
v2.4.0
Published
v2.3.0
Published
v2.2.1
Published
v2.2.0
Published
v2.1.3
Published
v2.1.2
Published
v2.1.1
Published
v2.1.0
Published
v2.0.4
94 Pull requests merged by 3 users
Merged
#124 proxy: snapshot in-flight counts before sorting (least_conn selection O(n))
Merged
#123 proxy: add mirror-selection benchmarks
Merged
#122 remotes: add least-connections mirror strategy (round-robin remains default)
Merged
#121 remotes: add mirrorlist for round-robin + failover across mirrors (rpm/deb/apk)
Merged
#120 remotes: flush cached metadata when a remote's base_url changes
Merged
#119 deb/apk: make local repodata deterministic
Merged
#118 rpm: make local repodata deterministic (fixes #117)
Merged
#116 ui: add alpine local and github_alpine usage instructions
Merged
#115 Add github_alpine metadata-only package type
Merged
#114 Add Alpine/apk local repository support
Merged
#113 ui: add deb and github_deb usage instructions
Merged
#112 Add github_deb metadata-only package type
Merged
#111 Add deb (Debian/apt) local and remote repository support
Merged
#109 feat: server-level GitHub machine credential for authenticated requests
Merged
#108 feat: background syncer for github_rpm remotes
Merged
#107 feat: github_rpm metadata-only remote (GitHub releases as a yum repo, no precache)
Merged
#105 feat(ui): add "How do I use this?" usage instructions to repo detail pages
Merged
#106 feat(ui): direct-download links for downloadable local repo files
Merged
#104 fix: make local docker uploads replica-independent
Merged
#103 feat: serve local docker repos as a real registry
Merged
#102 feat: serve local terraform repos as a provider registry
Merged
#101 feat: redirect / to the web UI
Merged
#100 fix: prune RPM metadata when a local file is evicted
Merged
#99 fix: show local-repo files in the cached-objects UI
Merged
#97 test: comprehensive dockerised end-to-end suite
Merged
#98 test: raise core-package unit coverage to 90%
Merged
#90 feat: wire the circuit breaker into the proxy fetch path
Merged
#86 fix: GC has no grace period (TOCTOU with dedup uploads)
Merged
#96 fix: repair master build after conflicting merges
Merged
#83 fix: set timeouts on the upstream HTTP client
Merged
#85 fix: getenv treats an explicitly-empty value as unset
Merged
#93 fix: coalesce concurrent cache-miss fetches (thundering herd)
Merged
#91 perf: batch access-log writes instead of goroutine+insert per request
Merged
#89 fix: HEAD requests fetch and stream the full body
Merged
#92 feat: cache upstream bearer tokens
Merged
#94 perf: stream proxied artifacts instead of buffering the full body in memory
Merged
#88 perf: compile remote match patterns once instead of per-request
Merged
#87 fix: blocklist fails open when a regex fails to compile
Merged
#84 fix: isNetworkError should use errors.As, not a bare type assertion
Merged
#82 fix: serveFromStore does a guaranteed-miss S3 lookup on every cache hit
Merged
#81 fix: e2e suite fails to build (stale server.New call)
Merged
#65 feat: add bandwidth saved stat to dashboard
Merged
#64 fix: strip base URL path prefix from helm chart download URLs
Merged
#63 fix: report actual version instead of hardcoded 3.0.0-dev
Merged
#62 feat: forward Accept header and fix Content-Type for Docker proxying
Merged
#61 fix: nginx config for UI serving under base path
Merged
#60 feat: handle Docker Bearer token auth for upstream registries
Merged
#59 fix: use map format for docker-buildx build_args
Merged
#58 feat: configurable UI base path via BASE_PATH build arg
Merged
#57 feat: add Docker Registry V2 endpoint at /v2/
Merged
#56 fix: don't rewrite helm chart URLs pointing to a different host
Merged
#55 chore: add pre-commit config and update CI pipeline
Merged
#54 feat: UI separates locals, remotes, and virtuals
Merged
#53 feat: add local RPM repository with on-demand repodata
Merged
#52 refactor: modular local provider interfaces
Merged
#51 feat: virtual PyPI repos can merge local + remote members
Merged
#50 feat: add local PyPI repository support
Merged
#49 feat: add local repository type with repo_type field
Merged
#48 feat: tree view for cached objects, top-files stats on dashboard
Merged
#47 Feat/v3 go rewrite
Merged
#46 chore: bump almalinux9 image tags
Merged
#45 feat: add Terraform/OpenTofu registry remote type
Merged
#44 feat: add Puppet Forge remote type
Merged
#43 feat: add ban_tags_enabled/ban_tags to docker remotes to block named tags
Merged
#42 fix: cross-link tag manifests to digest keys and add fetch lock to prevent thundering herd
Merged
#40 feat: cache parsed member indexes as msgpack to skip YAML re-parse on rebuild
Merged
#39 perf: use yaml.CSafeLoader/CDumper for 4x faster virtual index merge
Merged
#38 perf: offload virtual repo merge to thread pool via asyncio.to_thread
Merged
#37 fix: rewrite helm index.yaml URLs post-parse to handle relative URLs
Merged
#31 refactor: split config into remotes/virtuals/locals sections
Merged
#30 feat: add virtual repository support for unified index merging
Merged
#27 chore: move example config files into examples/
Merged
#26 feat: support config.d directory for split configuration (closes #20)
Merged
#25 feat: quarantine new releases (supply-chain attack prevention)
Merged
#24 refactor: split codebase into submodules (closes #19)
Merged
#23 chore: cleanup the readme
Merged
#18 refactor: simplify pypi and npm URL rewriting
Merged
#17 feat: add helm chart repository caching proxy
Merged
#16 feat: add npm registry caching proxy
Merged
#15 feat: add PyPI remote type with URL rewriting and basic auth
Merged
#14 feat: immutable/mutable caching patterns with conditional revalidation and stale fallback
Merged
#13 chore: remove build from tag
Merged
#12 build: align Dockerfile with packer build and add docker-compose dev mounts
Merged
#11 benvin/configurable-index-patterns
Merged
#10 feat: enforce include_patterns on docker /v2/ proxy route
Merged
#9 benvin/docker-caching
Merged
#8 feat: add Docker registry proxy support with proper cache classification
Merged
#7 feature/cache-flush-api-enhancement
Merged
#6 benvin/path-based-storage
Merged
#5 feat: add cache flush API and fix cache key consistency
Merged
#4 feat: index caching
Merged
#3 feat: add fedora index files
Merged
#2 Fix S3 SSL certificate validation and boto3 checksum compatibility
Merged
#1 Fix boto3 XAmzContentSHA256Mismatch errors with Ceph RadosGW
1 Pull request proposed by 1 user
Proposed
#95 docs: authentication & authorization system design (epic #79)
23 Issues closed from 2 users
Closed
#117 rpm-local repodata: intermittent checksum mismatch (repomd vs primary) breaks dnf
Closed
#74 feat: wire the circuit breaker into the proxy fetch path
Closed
#71 fix: GC has no grace period (TOCTOU with dedup uploads)
Closed
#67 fix: set timeouts on the upstream HTTP client
Closed
#69 fix: getenv treats an explicitly-empty value as unset
Closed
#75 fix: coalesce concurrent cache-miss fetches (thundering herd)
Closed
#76 perf: batch access-log writes instead of goroutine+insert per request
Closed
#70 fix: HEAD requests fetch and stream the full body
Closed
#77 feat: cache upstream bearer tokens
Closed
#66 perf: stream proxied artifacts instead of buffering the full body in memory
Closed
#73 perf: compile remote match patterns once instead of per-request
Closed
#72 fix: blocklist fails open when a regex fails to compile
Closed
#68 fix: isNetworkError should use errors.As, not a bare type assertion
Closed
#78 fix: serveFromStore does a guaranteed-miss S3 lookup on every cache hit
Closed
#80 fix: e2e suite fails to build (stale server.New call)
Closed
#41 refactor: remove repositories list from OCI helm remote; use single-chart base_url per remote
Closed
#36 Virtual helm: cache parsed member indexes (not raw bytes) to skip re-parse on rebuild
Closed
#34 Virtual helm merge: use yaml.CSafeLoader/CDumper for 10-50x YAML parse/dump speedup
Closed
#35 Virtual helm merge: offload CPU-bound merge to thread pool to unblock async event loop
Closed
#33 Virtual helm repo: relative chart URLs not rewritten, causing 404 on .tgz download
Closed
#20 Configuration data split
Closed
#22 Preventing supply chain attacks
Closed
#19 Refactor into submodules
28 Issues created by 1 user
Opened
#19 Refactor into submodules
Opened
#20 Configuration data split
Opened
#21 Secrets in config
Opened
#22 Preventing supply chain attacks
Opened
#28 feat: background cache warmer for virtual repositories
Opened
#29 test quality: rubber-stamping, coverage gaps, and improvement opportunities
Opened
#32 check creation date for npm
Opened
#33 Virtual helm repo: relative chart URLs not rewritten, causing 404 on .tgz download
Opened
#34 Virtual helm merge: use yaml.CSafeLoader/CDumper for 10-50x YAML parse/dump speedup
Opened
#35 Virtual helm merge: offload CPU-bound merge to thread pool to unblock async event loop
Opened
#36 Virtual helm: cache parsed member indexes (not raw bytes) to skip re-parse on rebuild
Opened
#41 refactor: remove repositories list from OCI helm remote; use single-chart base_url per remote
Opened
#66 perf: stream proxied artifacts instead of buffering the full body in memory
Opened
#67 fix: set timeouts on the upstream HTTP client
Opened
#72 fix: blocklist fails open when a regex fails to compile
Opened
#68 fix: isNetworkError should use errors.As, not a bare type assertion
Opened
#73 perf: compile remote match patterns once instead of per-request
Opened
#70 fix: HEAD requests fetch and stream the full body
Opened
#69 fix: getenv treats an explicitly-empty value as unset
Opened
#71 fix: GC has no grace period (TOCTOU with dedup uploads)
Opened
#75 fix: coalesce concurrent cache-miss fetches (thundering herd)
Opened
#76 perf: batch access-log writes instead of goroutine+insert per request
Opened
#74 feat: wire the circuit breaker into the proxy fetch path
Opened
#77 feat: cache upstream bearer tokens
Opened
#78 fix: serveFromStore does a guaranteed-miss S3 lookup on every cache hit
Opened
#79 epic: authentication & authorization system (Vault dynamic secrets, service accounts, users, path ACLs)
Opened
#80 fix: e2e suite fails to build (stale server.New call)
Opened
#117 rpm-local repodata: intermittent checksum mismatch (repomd vs primary) breaks dnf