feat(common): parametrisiertes Pflichttest-Gate für common/ #379

Merged
patrick merged 1 commits from feat/common-pflichttestgate into main 2026-10-27 18:15:31 +01:00
Owner

Stackt auf #378 (Base feat/common-modul). Nach dessen Merge auf main umstellen.

Problem

Die Gate-Workflows der Module diffen nur -- <modul>/. Änderungen an common/svcauth (Konstantzeit-Token-Vergleich) oder common/tenantregistryclient (Mandantenprüfung) würden nie gegen die Pflichttest-Regel geprüft, sobald diese Pakete aus den Modulen nach common/ wandern.

Änderung

  • common/pflichttestgate: CheckDiff(changedFiles, patterns), gleiche Logik wie die bisherigen Modul-Gates, Pfadmuster kommen vom Aufrufer (parametrisiert, wie besprochen)
  • common/cmd/pflichttestgate + .gitea/workflows/common-pflichttest-gate.yml: prüft PRs an common/ auf svcauth, tenantregistryclient, auditclient, policyclient, apierror, httpharden
  • common/README.md: PRs an common/ nennen betroffene Module; Breaking Changes nur mit neuer Minor-Version

Die bestehenden Modul-Gates bleiben unverändert (eigene Kopien); ihre Ablösung durch dünne Aufrufer von common/pflichttestgate gehört in die modulweisen Umstellungs-PRs.

Verifikation (Host 131)

gofmt sauber, go vet und go test grün (5 Unit-Tests). Gate-Binary praktisch geprüft: svcauth.go ohne Test im Diff → Exit 1 mit Meldung; mit svcauth_test.go → Exit 0.

Nicht geprüft: der Workflow selbst (nie gelaufen).

🤖 Generated with Claude Code

Stackt auf #378 (Base `feat/common-modul`). Nach dessen Merge auf `main` umstellen. ## Problem Die Gate-Workflows der Module diffen nur `-- <modul>/`. Änderungen an `common/svcauth` (Konstantzeit-Token-Vergleich) oder `common/tenantregistryclient` (Mandantenprüfung) würden nie gegen die Pflichttest-Regel geprüft, sobald diese Pakete aus den Modulen nach `common/` wandern. ## Änderung - `common/pflichttestgate`: `CheckDiff(changedFiles, patterns)`, gleiche Logik wie die bisherigen Modul-Gates, Pfadmuster kommen vom Aufrufer (parametrisiert, wie besprochen) - `common/cmd/pflichttestgate` + `.gitea/workflows/common-pflichttest-gate.yml`: prüft PRs an `common/` auf `svcauth`, `tenantregistryclient`, `auditclient`, `policyclient`, `apierror`, `httpharden` - `common/README.md`: PRs an `common/` nennen betroffene Module; Breaking Changes nur mit neuer Minor-Version Die bestehenden Modul-Gates bleiben unverändert (eigene Kopien); ihre Ablösung durch dünne Aufrufer von `common/pflichttestgate` gehört in die modulweisen Umstellungs-PRs. ## Verifikation (Host 131) `gofmt` sauber, `go vet` und `go test` grün (5 Unit-Tests). Gate-Binary praktisch geprüft: `svcauth.go` ohne Test im Diff → Exit 1 mit Meldung; mit `svcauth_test.go` → Exit 0. Nicht geprüft: der Workflow selbst (nie gelaufen). 🤖 Generated with [Claude Code](https://claude.com/claude-code)
patrick changed target branch from feat/common-modul to main 2026-10-27 18:15:26 +01:00
patrick added 1 commit 2026-10-27 18:15:26 +01:00
feat(common): parametrisiertes Pflichttest-Gate, Gate fuer common/ selbst
CI / Web-Barrierefreiheitspruefung (axe, Tastatur, Reflow, Textabstaende) (pull_request) Canceled after 0s
CI / Core-Modul (Build/Vet/Test) (push) Canceled after 0s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (push) Canceled after 0s
CI / Connect Security-Test-Gate (QA-01 AC4, Merge-Gate) (push) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (push) Canceled after 0s
CI / DMS-Modul Supply-Chain-Scan (govulncheck) (push) Canceled after 0s
CI / Web (dms-browser) (push) Canceled after 0s
CI / Web (pdf-viewer) (push) Canceled after 0s
CI / Web (shl) (push) Canceled after 0s
CI / Web-Barrierefreiheitspruefung (axe, Tastatur, Reflow, Textabstaende) (push) Canceled after 0s
CI / Core-Modul (Build/Vet/Test) (pull_request) Canceled after 0s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (pull_request) Canceled after 0s
CI / Connect Security-Test-Gate (QA-01 AC4, Merge-Gate) (pull_request) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (pull_request) Canceled after 0s
CI / DMS-Modul Supply-Chain-Scan (govulncheck) (pull_request) Canceled after 0s
CI / Web (dms-browser) (pull_request) Canceled after 0s
CI / Web (pdf-viewer) (pull_request) Canceled after 0s
CI / Web (shl) (pull_request) Canceled after 0s
Supply-Chain-Scan (Go) / govulncheck (push) Canceled after 0s
common Pflichttest-Gate / pflichttest-gate (pull_request) Canceled after 0s
Core-Schnittstellen-Vertragstests / contract-tests (pull_request) Canceled after 0s
Supply-Chain-Scan (Go) / govulncheck (pull_request) Canceled after 0s
Supply-Chain-Scan (npm) / npm-audit (pull_request) Canceled after 0s
Core-Pflichttest-Gate / pflichttest-gate (pull_request) Canceled after 0s
RBAC-Rollenhierarchie-Pflichtgate / rbac-policy-invariant (pull_request) Canceled after 0s
0c8b3fe2b3
CheckDiff(changed, patterns): gleiche Logik wie die Modul-Gates, Pfadmuster
vom Aufrufer. cmd/pflichttestgate + Workflow decken svcauth,
tenantregistryclient, auditclient, policyclient, apierror, httpharden ab.
README: Auswirkungsliste und Minor-Version bei Breaking Changes.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
patrick merged commit 8db663b7db into main 2026-10-27 18:15:31 +01:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: scripte/nexarch#379