Use a trusted publisher when publishing to PyPI#330
Merged
Conversation
nuwang
approved these changes
May 19, 2026
Contributor
nuwang
left a comment
There was a problem hiding this comment.
Thanks @ksuderman! Closes: #329
Contributor
|
Thanks both! For additional security you could split the workflow in 2 jobs where only the second needs the |
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.
This PR implements trusted publishing for PyPI uploads to enhance security and reduce the risk of supply chain attacks. The changes replace the traditional API token-based authentication with OpenID Connect (OIDC) token-based authentication provided by GitHub Actions.
The deployment workflow has been updated to use the trusted publishing mechanism where GitHub Actions generates short-lived OIDC tokens that PyPI can verify and trust. This eliminates the need to store long-lived API tokens as repository secrets, reducing the attack surface and potential for credential compromise.
PyPI Configuration Required: After merging this PR, repository administrators must configure trusted publishing on both PyPI and Test PyPI before the next release:
For Production PyPI:
cloudbridgeprojectCloudVEcloudbridgedeploy.yamlFor Test PyPI:
Post-Configuration:
PYPI_API_TOKENandTEST_PYPI_API_TOKEN) from repository secrets once confirmed workingThe trusted publishing setup provides better security, audit trails, and eliminates the need for credential rotation while maintaining the same publishing functionality.
Closes #329