Skip to content

Add CHANGELOG and signed-release workflow (cosign + SLSA)#16

Merged
wnstfy merged 1 commit into
mainfrom
feat/signed-releases
May 21, 2026
Merged

Add CHANGELOG and signed-release workflow (cosign + SLSA)#16
wnstfy merged 1 commit into
mainfrom
feat/signed-releases

Conversation

@wnstfy

@wnstfy wnstfy commented May 21, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Adds CHANGELOG.md (Keep-a-Changelog, CalVer YYYY.MM.DD) with a backfilled entry covering the recent hardening sprint (PRs Harden CI: SHA-pin actions, isolate PR scripts, pin Trivy installer #10Add CONTRIBUTING and Contributor Covenant 2.1 Code of Conduct #15).
  • Adds .github/workflows/release.yml — triggered on v* tags. Produces:
    • wnstify-docker-<ver>.tar.gz and .zip via git archive (tracked files only)
    • SHA256SUMS covering both archives
    • Sigstore keyless signature over SHA256SUMS (cosign sign-blob with OIDC; no long-lived key)
    • SLSA build-provenance attestation for each archive (actions/attest-build-provenance)
  • Adds VERIFICATION.md with copy-paste cosign verify-blob and gh attestation verify commands, pinned to this repo's workflow identity.

All third-party actions SHA-pinned. Job-level least-privilege permissions (contents/id-token/attestations: write, only on the release job).

Why

  • Satisfies OpenSSF Best Practices' release_notes MUST (CHANGELOG fills the role for a continuously delivered repo).
  • Activates Scorecard's Signed-Releases check at ~10/10 the first time we cut a release (today it's N/A / -1).

Test plan

  • scan (PR CVE gate) passes — docs + new workflow only.
  • actionlint workflow passes — verified locally with rhysd/actionlint:1.7.7, no findings.
  • After merge, tag v2026.05.21 to trigger first release and verify all six artifacts publish + cosign verify-blob and gh attestation verify both succeed.

Establishes the project's public release process:
- CHANGELOG.md in Keep-a-Changelog format, with a backfilled entry
  covering the recent CI/hardening sprint and CalVer (YYYY.MM.DD)
  policy.
- .github/workflows/release.yml triggered on v* tags: builds source
  tar.gz + zip via git archive (tracked files only), generates
  SHA256SUMS, signs the checksum file via Sigstore keyless (cosign +
  OIDC, no long-lived key), and produces a SLSA build-provenance
  attestation via actions/attest-build-provenance.
- VERIFICATION.md with copy-paste cosign verify-blob and
  gh attestation verify commands, bound to this repo's workflow
  identity so downstream users can detect impersonation.

All actions pinned by commit SHA, job-level least-privilege tokens
(contents/id-token/attestations: write).
@wnstfy
wnstfy enabled auto-merge (squash) May 21, 2026 10:32
@github-actions

Copy link
Copy Markdown
Contributor

Trivy misconfiguration findings (HIGH + CRITICAL)

Findings below. Fix the issue or add an ignore entry to .trivyignore with a justification.


Report Summary

┌────────┬──────┬───────────────────┐
│ Target │ Type │ Misconfigurations │
├────────┼──────┼───────────────────┤
│   -    │  -   │         -         │
└────────┴──────┴───────────────────┘
Legend:
- '-': Not scanned
- '0': Clean (no security findings detected)

@wnstfy
wnstfy merged commit 8002c23 into main May 21, 2026
4 checks passed
@wnstfy
wnstfy deleted the feat/signed-releases branch May 21, 2026 10:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant