Skip to content

fix(release): retention-fix für stabile 5.2.0-promotion#94

Merged
tomtastisch merged 3 commits intomainfrom
codex/fix/release-retention-stable-cleanup
Feb 18, 2026
Merged

fix(release): retention-fix für stabile 5.2.0-promotion#94
tomtastisch merged 3 commits intomainfrom
codex/fix/release-retention-stable-cleanup

Conversation

@tomtastisch
Copy link
Owner

@tomtastisch tomtastisch commented Feb 18, 2026

Ziel & Scope

  • Retention-Workflow nach der Stable-Promotion v5.2.0 wieder deterministisch lauffähig machen.
  • OIDC-Mismatch im Retention-Pfad beheben, ohne den Publish-Workflow (release.yml) zu verändern.
  • Changelog- und Workflow-Stand konvergent halten.

Umgesetzte Aufgaben (abhaken)

  • release-retention.yml: OIDC-Step (NuGet/login) entfernt.
  • release-retention.yml: NUGET_API_KEY auf secrets.NUGET_API_KEY gesetzt.
  • release-retention.yml: id-token: write entfernt (Least Privilege).
  • retention_apply.sh: GitHub-Packages-Endpoint robust (user -> org -> leer) umgesetzt.
  • retention_apply.sh: fehleranfälliger jq-Fallbackpfad entfernt.
  • docs/versioning/003_CHANGELOG_RELEASES.MD: Retention-Claim korrigiert.
  • docs/versioning/103_CHANGELOG_RELEASES.MD: Retention-Claim korrigiert.
  • Lokale Verifikation (Dry-Run + Doku-Gates) durchgeführt.

Nachbesserungen aus Review (iterativ)

  • Root-Cause aus fehlgeschlagenem Retention-Run 22134225117 aus Actions-Logs extrahiert.
  • Fix auf minimalen Scope begrenzt (nur Retention-Workflow + Retention-Skript + Changelog-Konsistenz).
  • PR-Body auf Governance-Pflichtstruktur nachgezogen.

Security- und Merge-Gates

  • Kein Secret-Wert im Code/Log hardcoded.
  • Rechte minimiert (id-token im Retention-Workflow entfernt).
  • Merge erst bei grünen Required Checks.
  • security/code-scanning/tools muss 0 offene Alerts zeigen (Merge-Gate).

Evidence (auditierbar)

  1. Fehlerursache (Actions-Log)
  • Befehl: gh run view 22134225117 --log
  • Befund: Token exchange failed (401): Workflow mismatch for policy 'tp-fileclassifier-release': expected 'release.yml', actual 'release-retention.yml'
  1. Skript-Validierung
  • Befehl: bash -n tools/ci/release/retention_apply.sh
  • Ergebnis: Exit 0
  1. Retention Dry-Run
  • Befehl: DRY_RUN=1 ... bash tools/ci/release/retention_apply.sh
  • Ergebnis: Exit 0, geplante RC-Bereinigung enthält v5.2.0-rc.6.
  1. Doku-Gates
  • Befehl: python3 tools/check-doc-consistency.py -> Doc consistency check OK
  • Befehl: python3 tools/check-docs.py -> Doc check OK

DoD (mindestens 2 pro Punkt)

Punkt DoD A DoD B
Retention-Workflow stabilisiert OIDC-Aufruf ist aus release-retention.yml entfernt NuGet-Unlist-Key wird nur über Secret bezogen
Retention-Skript robust Fehlender user/org Packages-Endpoint erzeugt keinen Parse-Fehler PACKAGE_ROWS fällt deterministisch auf leer zurück
Dokumentationskonvergenz DE-Changelog entspricht implementiertem Ablauf EN-Changelog entspricht implementiertem Ablauf

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Der PR stellt die Release-Retention nach der Stable-Promotion von v5.2.0 wieder her, indem der OIDC/Trusted-Publishing-Pfad aus dem Retention-Workflow entfernt und auf Secret-basiertes NuGet-Unlist umgestellt wird, plus Synchronisierung der Doku.

Changes:

  • .github/workflows/release-retention.yml: Entfernt OIDC (NuGet/login) und id-token-Permission; nutzt ausschließlich secrets.NUGET_API_KEY.
  • tools/ci/release/retention_apply.sh: Robustere Ermittlung der GitHub-Packages-Versionen (User-Endpoint mit Org-Fallback; kein jq-Parsing des Endpoints mehr).
  • Changelogs (DE/EN): Text an den tatsächlich genutzten Retention-Pfad angepasst.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 2 comments.

File Description
tools/ci/release/retention_apply.sh Fallback-Logik für GH Packages Endpoint + deterministisches Leersetzen von PACKAGE_ROWS.
.github/workflows/release-retention.yml Entfernt OIDC-Login/Permissions; setzt NuGet-Unlist auf Secret-basierten Key.
docs/versioning/103_CHANGELOG_RELEASES.MD Doku-Statement auf Secret-basiertes NuGet-Unlist aktualisiert.
docs/versioning/003_CHANGELOG_RELEASES.MD DE-Changelog analog auf Secret-basiertes NuGet-Unlist aktualisiert.

@tomtastisch tomtastisch merged commit a857a98 into main Feb 18, 2026
26 checks passed
@tomtastisch tomtastisch deleted the codex/fix/release-retention-stable-cleanup branch February 18, 2026 09:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:pipeline area:versioning fix Bugfix impl:config versioning:patch Fix/Refactor/Docs/CI/Tooling; requires PATCH bump

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

Comments