What goharbor/harbor shipped
Written by FoxPlug from the repository's own releases; not affiliated with Goharbor. Paste your own repository in the box below and FoxPlug writes the same weekly update for your product. This page is an automatic summary of the releases, pull requests and commits in github.com/goharbor/harbor; Goharbor did not write it and does not use or endorse FoxPlug. Every line links to the change it describes.
Get a weekly update like this for your product, free
Week of October 5, 2026
What shipped
- Release v2.13.6 warns that webhooks to internal addresses are blocked by default after the fix for GHSA-2phj-cp9f-qq6w. Release
- Release v2.14.5 carries the same webhook blocking default for internal, loopback, link-local and other non-public addresses. Release
- Release v2.15.3 ships the webhook change and its breaking-change warning for internal receivers. Release
- Release v2.15.4 restores webhook delivery to internal receivers and makes legacy signer pull the default. Release
- Webhook and Slack notifications to private, loopback or link-local addresses work by default again instead of requiring an explicit setting. Pull request #24082
- Webhook egress now has three policy levels plus an allowlist in place of a single boolean switch. Pull request #24079
- Legacy signer pull is enabled by default for content trust so existing cosign and notation signing workflows keep working after upgrade. Pull request #24085
- The legacy signer pull switch is exposed in harbor.yml so the setting survives a restart. Pull request #24101
- Rejected pagination Link errors no longer quote the base URL with its query, dropping userinfo, query and fragment before reporting. Pull request #24095
- The redis base image on the 2.14 line installs Redis 7.2.11 instead of 7.2.6, picking up the CVE-2025-49844 fix. Pull request #24065
Why it matters
This week was mostly about releases and about undoing a breaking default. Operators upgrading to the 2.13, 2.14 or 2.15 patch releases had webhooks and Slack delivery to internal addresses blocked, including hostnames that resolve to cluster-local names, so many on-premise and Kubernetes receivers stopped working. The follow-up releases make private network access the default again and add policy levels and an allowlist, while content trust keeps legacy signer pull on by default so existing cosign and notation workflows are not broken.
Changelog entry
- Release v2.15.4: webhooks to internal receivers allowed by default, legacy signer pull allowed by default, plus cherry-picked fixes. Release
- Release v2.15.4-rc1 with the same webhook and content trust defaults. Release
- Release v2.15.3: warning that webhooks to internal addresses are blocked by default. Release
- Release v2.14.5: warning that webhooks to internal addresses are blocked by default. Release
- Release v2.13.6: warning that webhooks to internal addresses are blocked by default. Release
- Webhook and Slack notifications reach private, loopback and link-local addresses by default again, with the setting kept. Pull request #24082
- Webhook egress policy now offers three levels and an allowlist instead of one boolean switch. Pull request #24079
- Content trust allows legacy signer pull by default to avoid breaking cosign and notation signing on upgrade. Pull request #24085
- The legacy signer pull switch is exposed in harbor.yml so it survives a prepare restart. Pull request #24101
- Rejected pagination Link errors redact userinfo, query and fragment of the base URL. Pull request #24095
- Redis base image on the 2.14 line pins Redis 7.2.11 instead of 7.2.6 for the CVE-2025-49844 fix. Pull request #24065
- Redis base image on the 2.13 line pins Redis 7.2.11 instead of 7.2.6 for the CVE-2025-49844 fix. Pull request #24066
Several patch releases shipped this week. Webhooks to internal addresses are blocked by default in the 2.13, 2.14 and 2.15 releases, then allowed by default again in the follow-ups, which add egress policy levels and an allowlist. Legacy signer pull is on by default.
This week Harbor published patch releases on several branches, and the headline change for operators is the webhook egress default. The fix for GHSA-2phj-cp9f-qq6w blocks webhook and Slack delivery to private, loopback, link-local and other non-public addresses, including hostnames that resolve to them such as *.svc.cluster.local, so webhooks to internal receivers stopped working after upgrade. The follow-up releases make private network access the default again, keep the setting configurable, and add three egress policy levels plus an allowlist instead of a single boolean. Content trust also defaults to allowing legacy signer pull so existing cosign and notation signing workflows keep working. Other fixes cover redaction of pagination links in rejection errors, the redis base image on the
Week of September 28, 2026
What shipped
- Scheduled garbage collection now reads the registry Redis URL from the core environment at runtime instead of relying on a potentially stale URL saved in the database, fixing cases where Redis was moved, renamed, or had its password changed. Pull request #24037
- Custom project roles are now available as a hybrid implementation that keeps built-in roles in code while allowing custom roles to be stored in the database. Pull request #23804
- The proxy cache backend's stale content option label and tooltip were updated to clarify that local content is always served when the upstream registry is unhealthy, removing the misleading unavailable-upstream description. Pull request #23978
- Robot tests for CVE export were updated to expect the corrected toast message 'Triggered exporting CVEs successfully.' Pull request #24010
- The spectral binary download in CI now retries on failure, preventing transient GitHub Releases issues from breaking the
lint_apisbuild step. Pull request #23984 - Added the missing
get_member_role_idhelper method to the project test helper for API tests. Pull request #23997
Why it matters
This week's changes improve garbage collection reliability after Redis configuration changes, add support for custom project roles alongside built-ins, and clarify proxy cache behavior. Bug fixes and test updates ensure the export and audit features work correctly.
Changelog entry
- Fix(gc): Use the current registry Redis URL for scheduled runs instead of potentially stale cached URL Pull request #24037
- Feat: custom project roles with hybrid approach keeping built-in roles in code and custom roles in database Pull request #23804
- Fix(portal): clarify proxy cache serve stale content option label and remove misleading unavailable-upstream description Pull request #23978
- Fix(test): update CVE export toast message expectation in Robot tests Pull request #24010
- Ci: retry spectral binary download to handle transient GitHub Releases failures Pull request #23984
- Test(apitests): add missing
get_member_role_idhelper method to project test helper Pull request #23997
Harbor updates: GC now uses current Redis config at runtime, custom project roles are available, and proxy cache stale content labeling is clearer. CI improvements prevent transient failures.
This week's Harbor updates focus on reliability and flexibility. Scheduled garbage collection now reads Redis configuration from the environment at runtime, so moves or password changes no longer break GC. Custom project roles join built-in roles for more granular access control. Proxy cache behavior is now more clearly documented. CI improvements make builds more resilient to transient network issues.
Week of September 21, 2026
What shipped
- Released v2.15.3-rc2 with fixes for user audit event resolution, registry ping endpoint constraint, and other component updates. Release
- Fixed retention policy metadata leak when deleting projects, which previously left orphaned
retention_idreferences in the database. Pull request #23942 - Fixed garbage collection to not report blobs missing from storage as freed space, preventing inaccurate size reporting in GC jobs. Pull request #23972
- Corrected grammar, formatting, and error messages in user-facing strings across middleware, REST API handlers, core controllers, jobservice, and portal. Pull request #23974
- Added
merge_grouptrigger to CI and CodeQL workflows to support merge queue functionality. Pull request #23986
Why it matters
This week addresses data consistency issues in retention policies and garbage collection reporting, while improving the clarity of user-facing messages. These fixes reduce database leaks and ensure GC operations report accurate freed space metrics.
Changelog entry
- V2.15.3-rc2 released with multiple bug fixes and component updates Release
- Fix(retention): drop
retention_idmetadata on project delete Pull request #23942 - Fix(gc): do not count blobs missing from storage as freed space Pull request #23972
- Fix: correct grammar, formatting, and non-actionable error messages Pull request #23974
- Ci: add
merge_grouptrigger to CI and CodeQL workflows Pull request #23986
Harbor v2.15.3-rc2 is out. This release fixes retention policy metadata leaks, corrects GC freed space reporting, and improves error messages across the platform.
Harbor v2.15.3-rc2 is available. Key improvements include fixing retention policy metadata that leaked after project deletion, correcting garbage collection to accurately report freed space without counting missing blobs, and refining error messages for better clarity. These fixes improve data consistency and operational reliability.
Week of September 14, 2026
What shipped
- Retention settings are now exposed during proxy-cache project creation. Pull request #23863
- HTTPS URL scheme checking for CA download is now case-insensitive per RFC 3986. Pull request #23888
- Cache prefix handling fixed to prevent double prefixing when removing expired entries. Pull request #23913
- Graceful shutdown no longer produces misleading error logs from http.ErrServerClosed. Pull request #23296
- GitHub CodeQL action updates are now applied in a single Dependabot PR instead of separate ones. Pull request #23929
- Dependabot is configured to ignore major Angular and TypeScript updates in the portal. Pull request #23858
- Documentation typo corrected in member component. Pull request #23807
Why it matters
This week's changes improve proxy-cache configuration options, fix protocol handling edge cases, and address cache consistency issues. The fixes ensure cleaner shutdown behavior and more reliable dependency management for the project.
Changelog entry
- Feature: Expose retention setting during proxy-cache project creation Pull request #23863
- Fix: HTTPS URL scheme check for CA download is now case-insensitive Pull request #23888
- Fix: Avoid double prefix when removing expired cache entries Pull request #23913
- Fix: Ignore http.ErrServerClosed on graceful shutdown to prevent misleading error logs Pull request #23296
- CI: Consolidate GitHub CodeQL action updates into single Dependabot PR Pull request #23929
- CI: Ignore Angular and TypeScript major updates in portal Dependabot groups Pull request #23858
- Docs: Fix typo in member component Pull request #23807
Harbor's latest updates include retention settings for proxy-cache projects, RFC-compliant URL scheme checking, and fixes for cache handling and graceful shutdown behavior.
Harbor continues improving with this week's releases: retention settings are now configurable during proxy-cache project creation, URL scheme checking for CA downloads is now RFC 3986 compliant, cache prefix handling is fixed to prevent entry duplication, and graceful shutdown produces cleaner logs. Plus updated dependency management strategies for better CI stability.