konstin/gh-action-pypi-publish — explained in plain English
Analysis updated 2026-07-25 · repo last pushed 2025-09-03
Automatically publish your Python library to PyPI every time you create a new release tag in GitHub.
Upload a test version of your package to TestPyPI first to make sure everything looks correct before the real release.
Publish packages to multiple Python package indexes from a single GitHub workflow.
| konstin/gh-action-pypi-publish | 0xallam/my-recipe | 0xhassaan/nn-from-scratch | |
|---|---|---|---|
| Stars | — | — | 0 |
| Language | Python | Python | Python |
| Last pushed | 2025-09-03 | 2022-11-22 | — |
| Maintenance | Quiet | Dormant | — |
| Setup difficulty | moderate | moderate | moderate |
| Complexity | 2/5 | 2/5 | 4/5 |
| Audience | developer | general | developer |
Figures from each repo's GitHub metadata at analysis time.
Requires configuring trusted publishing on PyPI or providing an API token, plus a separate build step in your workflow.
If you maintain a Python package and want every new release to show up on PyPI (the public directory where people install Python software from) automatically, this GitHub Action handles that final step for you. It takes the packaged files your project already produced and uploads them to PyPI or TestPyPI, so you don't have to do it manually. Under the hood, it runs inside GitHub's automation system. You set up a workflow that builds your package files and places them in a folder, then this action picks them up and publishes them. The recommended approach uses something called "trusted publishing," which lets GitHub prove to PyPI who you are without you ever creating or pasting an API token. You just need to configure your project on PyPI once, then add a couple of lines to your workflow file. If you prefer, you can still use a traditional username and password or API token instead. This is aimed at anyone publishing Python packages through GitHub. For example, if you tag a new version of your library and want it to appear on PyPI within minutes, this action does the upload as part of your release process. It also supports TestPyPI, a staging area where you can check that everything looks right before publishing for real. You can publish only when a tag is created, upload to multiple indexes, or show file hashes for verification. A few things are worth noting about how it's designed. It deliberately only handles publishing, not building your package, you build in a separate step first. It only runs on GitHub's Linux-based runners, and the project strongly recommends keeping the build step and the publish step in separate jobs with different permission levels. This separation is a security measure: if something malicious sneaks into the build environment, it won't have the elevated permissions needed to publish. The action also generates signed attestations by default when using trusted publishing, which adds a cryptographic seal proving the files came from your GitHub workflow.
A GitHub Action that automatically uploads your finished Python package files to PyPI or TestPyPI when you release a new version. You build the package in a separate step, and this action handles the publishing securely.
Mainly Python. The stack also includes Python, GitHub Actions.
Quiet — no commits in 6-12 months (last push 2025-09-03).
Use freely for any purpose, including commercial use, as long as you keep the copyright notice.
Setup difficulty is rated moderate, with roughly 30min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Don't trust strangers blindly. Verify against the repo.