Repository navigation
feat: prepare tagged NuGet acceptance and retire the legacy publisher - #35
Merged
Merged
Conversation
11 of 12 tasks
This was referenced Oct 25, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Core's tag-triggered CI publisher can bypass Sonar readiness, and the completed no-upload rehearsal did not yet exercise authenticated tagged preparation or stored intent. This PR bundles removal of that legacy job with the complete tagged acceptance path for #29.
ci.yml'spack-and-publishjob and update its exact policy fingerprint. Preserve CI triggers and build/test checks.sonar-poc/nuget/<32 lowercase hex>/vX.Y.Zand pin its updated bytes. Add a protected acceptance consumer using the existing pinned shared verifier, authenticated origin/batch, stored intent, seven live negative probes, per-file revalidation, local discard and retained outcomes.SONAR_NUGET_ACCEPTANCE_ENABLED=true; this variable is currently absent. The production publisher remains unchanged with literal-false guards. The consumer has no OIDC permission, NuGet login or package upload command.Validation: Release build and all 8 Core tests passed; 49 offline cases execute the actual event/credential checks and both outcome recorders; Bash syntax, actionlint, CSharpier and the current direct/transitive vulnerability audit passed (zero findings). CI job preservation, exact policy hashes and the unchanged production/Sonar workflows were independently checked.
The new hosted tagged handoff is pending merge and separately authorized protected test setup; local fixtures are not claimed as hosted evidence. No test switch, tag, environment, token or NuGet policy was changed. Removing the current CI job does not revoke the old NuGet Trusted Publisher policy or prevent historical workflow runs from using it; policy migration and production controls remain open. Publishing is not activated, and #29 remains open.
Hosted CI 40090949176, attempt 1 passed on
de7fbd2190308d3ed39cabdad0394d78f80d8403, including restore, formatting, build, tests and vulnerability scan. Core has no separate E2E workflow; central Sonar runs on main after merge.Refs #29. Please review; do not merge automatically.