Skip to content

ci(publish): restore OIDC Trusted Publishing + enable attestations#89

Merged
kurok merged 1 commit into
masterfrom
publish-oidc-and-attestation
Jun 12, 2026
Merged

ci(publish): restore OIDC Trusted Publishing + enable attestations#89
kurok merged 1 commit into
masterfrom
publish-oidc-and-attestation

Conversation

@kurok

@kurok kurok commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

The v0.4.0 publish surfaced two issues; this fixes both.

1. OIDC + attestations (your call)

The legacy PYPI_USERNAME/PYPI_PASSWORD auth I added in #84 disabled Trusted Publishing and silently ignored the PEP 740 attestations (the exact warning from the run). Reverted to OIDC: dropped user/password, set attestations: true explicitly. Combined with the existing attest-build-provenance step, the release is fully attested.

➡️ One-time PyPI setup required: add a Trusted Publisher for namecheap/fast_mail_parser, workflow publish.yml (no environment) at https://pypi.org/manage/project/fast-mail-parser/settings/publishing/ — the publish fails without it.

2. Artifact digest-mismatch

download-artifact@v8 (Dependabot #70) failed the Release job on a digest check against upload-artifact@v7 (#71), even though all artifacts downloaded fine. Set digest-mismatch: warn so a spurious mismatch doesn't block the release — integrity is still covered by the provenance attestation.

After this merges + the Trusted Publisher is configured, re-creating the v0.4.0 release publishes via OIDC with attestations.

Drop the legacy PYPI_USERNAME/PYPI_PASSWORD auth (from #84): setting an explicit
password disables Trusted Publishing AND silently ignores PEP 740 attestations.
Use OIDC (no long-lived creds) with attestations: true, alongside the existing
build-provenance attestation step. Requires a one-time PyPI Trusted Publisher
for namecheap/fast_mail_parser + publish.yml.

Also set download-artifact digest-mismatch to warn: the upload@v7/download@v8
pairing can report a spurious digest mismatch that fails artifact collection
even though the download succeeds (provenance attestation still covers integrity).

Signed-off-by: yuriyryabikov <22548029+kurok@users.noreply.github.com>
@kurok kurok merged commit 44a8ece into master Jun 12, 2026
7 checks passed
@kurok kurok deleted the publish-oidc-and-attestation branch June 12, 2026 22:14
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