A GitHub Action for securely publishing Python packages to PyPI using trusted publishing (OIDC) without requiring API tokens.
PyPI publish GitHub Action is an official GitHub Action for securely uploading Python distribution packages to the Python Package Index (PyPI) from CI/CD workflows. It solves the problem of automating package releases without managing sensitive API tokens by using PyPI's trusted publishing (OIDC) feature.
Python package maintainers and developers who use GitHub Actions for CI/CD and want to automate publishing to PyPI or other Python package repositories securely.
Developers choose this action because it's the official PyPA solution, offers tokenless authentication via trusted publishing, includes built-in security best practices, and simplifies release automation with minimal configuration.
The blessed :octocat: GitHub Action, for publishing your :package: distribution files to PyPI, the tokenless way: https://github.com/marketplace/actions/pypi-publish
Uses PyPI's trusted publishing via OpenID Connect, eliminating the need to manage and store API tokens, as highlighted in the trusted publishing setup.
Generates and uploads Sigstore-signed attestations by default for trusted publishing flows, enhancing package provenance and security without extra configuration.
Enforces building and publishing in separate jobs to prevent privilege escalation and build dependency poisoning, a core philosophy stated in the non-goals section.
Supports PyPI, TestPyPI, and custom repositories with configurable URLs, allowing for diverse publishing targets as shown in the advanced release management examples.
The action is docker-based and only supported in GNU/Linux jobs, explicitly unsupported for other runner OSes, limiting cross-platform CI/CD setups.
Requires manual setup of artifact sharing between separate build and publish jobs using actions like upload/download-artifact, adding overhead for simple projects.
Cannot be used in reusable workflows or composite actions with trusted publishing, and invoking it multiple times in one job is not supported, restricting CI/CD modularity.
GitHub Actions for executing remote ssh commands.
Deploys a GitHub project to a FTP server using GitHub actions
GitHub Action that copy files and artifacts via SSH.
GitHub Action for GoReleaser
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.