• v0.6.11 8d7b572d6e

    v0.6.11 Stable

    pipeline-bot released this 2026-07-07 19:36:41 +00:00 | 75 commits to main since this release

    Changed

    • ForgejoTagProtection + ForgejoCollaborator: skip the write when already in
      sync, so steady-state reconciles no longer edit/re-grant every requeue. Tag
      protection compares the live whitelist (order-insensitive) before
      EditTagProtection; the collaborator grant is skipped when the user is already
      a direct collaborator (IsCollaborator) at the desired permission
      (CollaboratorPermission, with owner→admin coercion) — gated on direct
      membership so an effective-permission match (repo owner, org admin, or
      public-repo reader) never skips a genuinely-needed grant. This completes the
      drift-skip audit: the other 10 controllers already diff-gate their writes.
    • Cut steady-state Forgejo API load. The gitea client — and its construction-time
      GET /api/v1/version probe — is now cached per endpoint instead of rebuilt on
      every reconcile of every resource, so the version is probed once per credential
      rather than once per reconcile (~halving API calls); all clients share one
      connection-pooled http.Transport with a larger per-host idle pool. The default
      drift-resync interval is raised from 5m to 15m — Forgejo has no watch/event API
      for the settings these controllers manage, so periodic resync is the only drift
      signal, and since the operator is the writer, drift is rare.
    • Reconcile + client timings are now configurable (defaults unchanged in spirit)
      via flags that govern all controllers uniformly through the shared harness:
      --resync-interval, --progressing-interval, --transient-interval,
      --forgejo-client-timeout, --max-concurrent-reconciles, --retry-base-delay,
      --retry-max-delay. Previously these were hardcoded.

    Included changes (v0.6.10 -> v0.6.11)

    Downloads