Skip to content

Inline PyPI publish for trusted publishing compatibility#55

Merged
negillett merged 1 commit into
mainfrom
fix-pypi-inline-publish
May 21, 2026
Merged

Inline PyPI publish for trusted publishing compatibility#55
negillett merged 1 commit into
mainfrom
fix-pypi-inline-publish

Conversation

@negillett
Copy link
Copy Markdown
Member

Summary

  • Replace the reusable-workflow publish job with an inline
    pypa/gh-action-pypi-publish@release/v1 step so PyPI trusted
    publishing matches intentproof-sdk-python / release-pypi.yml.
  • Keep Cosign signing on the reusable generic path for GitHub Release
    artifacts.
  • Run twine check before upload.

Test plan

  • Merge and re-run release (delete/recreate tag v0.2.0 or dispatch
    release pypi on the tag ref with publish enabled).
  • Confirm PyPI trusted publishing succeeds with existing OIDC config
    (IntentProof / intentproof-sdk-python / release-pypi.yml).
  • Verify PEP 740 attestations via pip download --require-hashes
    and cosign verify-blob.

Review

  • Internal review: root cause is PyPI's lack of reusable-workflow
    support; inline publish matches the Node release-npm.yml pattern.
    No OIDC reconfiguration required on PyPI.

PyPI OIDC does not support reusable workflows. Publish from a
native job with gh-action-pypi-publish while keeping Cosign
signing on the reusable generic path.

Signed-off-by: Nathan Gillett <nathan@intentproof.io>
@cursor
Copy link
Copy Markdown

cursor Bot commented May 21, 2026

PR Summary

Medium Risk
Modifies the PyPI release workflow and its permissions, which can affect the package publishing pipeline and release integrity if misconfigured.

Overview
Updates release-pypi.yml to replace the reusable release-build-sign publish job with an inline publish flow: download built dists, run twine check, then upload via pypa/gh-action-pypi-publish with PEP 740 attestations enabled.

Adjusts the publish job to run directly on ubuntu-latest and scopes contents permission to read (while keeping the separate sign job using the reusable signing workflow for GitHub Release artifacts).

Reviewed by Cursor Bugbot for commit cda4a98. Bugbot is set up for automated code reviews on this repo. Configure here.

@negillett negillett merged commit 843b6dc into main May 21, 2026
3 checks passed
@negillett negillett deleted the fix-pypi-inline-publish branch May 21, 2026 13:31
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