|
| 1 | +--- |
| 2 | +title: Trusted Publishing is popular, now for GitLab Self-Managed and Organizations |
| 3 | +description: Expansion of Trusted Publishers feature for more impact |
| 4 | +date: 2025-11-10 |
| 5 | +authors: |
| 6 | + - miketheman |
| 7 | +tags: |
| 8 | + - oidc |
| 9 | + - organizations |
| 10 | + - publishing |
| 11 | + - security |
| 12 | +meta: |
| 13 | + - name: fediverse:creator |
| 14 | + content: "@miketheman@hachyderm.io" |
| 15 | +--- |
| 16 | + |
| 17 | +Trusted Publishing has proven popular since [its launch in 2023](2023-04-20-introducing-trusted-publishers.md). |
| 18 | + |
| 19 | +**Recap:** Trusted Publishing enables software build platforms to publish packages to PyPI on your behalf, |
| 20 | +eliminating the need to manage long-lived authentication tokens. |
| 21 | +After a one-time setup where you delegate publishing authority to your platform, |
| 22 | +it automatically obtains short-lived, scoped tokens for each build—no manual token management required. |
| 23 | + |
| 24 | +Read the [Security Model](https://docs.pypi.org/trusted-publishers/security-model/) |
| 25 | +for a deeper understanding of how Trusted Publishing works. |
| 26 | + |
| 27 | +<!-- more --> |
| 28 | + |
| 29 | +## Growing Adoption and Impact |
| 30 | + |
| 31 | +Since its inception, Trusted Publishing has been adopted by communities and companies alike, |
| 32 | +with ~45,000 projects configured for Trusted Publishing on PyPI so far. |
| 33 | +In early 2024 we added the ability to track whether each file upload was done via a Trusted Publisher, |
| 34 | +enabling us to analyze its impact over time. |
| 35 | +Also in 2024, more platforms were added as detailed in our [April 2024 blog post](2024-04-17-expanding-trusted-publisher-support.md). |
| 36 | + |
| 37 | +Here's a chart displaying the overall count of files uploaded to PyPI each month, |
| 38 | +broken down by whether they were uploaded via Trusted Publishers or not: |
| 39 | + |
| 40 | + |
| 41 | + |
| 42 | +A couple of numbers for comparison: |
| 43 | + |
| 44 | +* February 2024 - 241k files added |
| 45 | +* October 2025 - 377k files added |
| 46 | + |
| 47 | +As this chart shows, the overall scale of files uploaded to PyPI has grown |
| 48 | +(as detailed in [this blog from the PSF Director of Infrastructure on open infrastructure growth](https://pyfound.blogspot.com/2025/10/open-infrastructure-is-not-free-pypi.html)) |
| 49 | +but what is great to see is that the proportional rate of Trusted Publishing use has grown as well. |
| 50 | +This can be seen by charting the percentage of files uploaded for each method over time: |
| 51 | + |
| 52 | + |
| 53 | + |
| 54 | +Here we can see that back in February 2024, only about 10% of files were uploaded via Trusted Publishers. |
| 55 | +By October 2025, that number has grown to **over 25% of all files uploaded to PyPI** in a given month. |
| 56 | + |
| 57 | +Hopefully posts like this and increased visibility in how to adopt Trusted Publishing |
| 58 | +will help continue this growth trend. |
| 59 | +Having folks like [Sviatoslav Sydorenko](https://github.com/webknjaz) and other contributors voluntarily maintain |
| 60 | +the [widely-used GitHub Actions workflow for Trusted Publishing](https://github.com/marketplace/actions/pypi-publish) |
| 61 | +that makes everything that much easier has been a huge help, support them as well if you can! |
| 62 | +Using that action adds [Digital Attestations](2024-11-14-pypi-now-supports-digital-attestations.md) automatically. :lock: |
| 63 | + |
| 64 | +I hope that when we examine these stats next year, we'll see even more growth |
| 65 | +as more organizations adopt Trusted Publishing for their package publishing workflows. |
| 66 | + |
| 67 | +Which brings me to... |
| 68 | + |
| 69 | +## Expansion of Trusted Publishing to GitLab Self-Managed Beta |
| 70 | + |
| 71 | +Since folks have been loving Trusted Publishing, |
| 72 | +I'm excited to share that it's now available in beta for GitLab Self-Managed instances. |
| 73 | +This means organizations running their own GitLab can now use Trusted Publishers |
| 74 | +to publish packages more securely, without dealing with long-lived tokens. |
| 75 | + |
| 76 | +As a reminder, trusted publishing support for the public GitLab.com instance |
| 77 | +has been available since early 2024. |
| 78 | + |
| 79 | +Since GitLab itself can be self-hosted, |
| 80 | +we're initially launching this feature as a beta to gather feedback and ensure a smooth experience. |
| 81 | +Organizations' self-hosted instances must be manually onboarded by PyPI staff during this beta phase, |
| 82 | +while we learn more about the various configurations and setups in use. |
| 83 | + |
| 84 | +In this scenario, the trust relationship is established between your GitLab Self-Managed instance |
| 85 | +and PyPI, allowing GitLab CI/CD pipelines to publish packages on behalf of your organization |
| 86 | +without the need for long-lived tokens. |
| 87 | + |
| 88 | +If your organization runs your own GitLab Self-Managed instances and wish to publish packages to PyPI using Trusted Publishing, |
| 89 | +we encourage you to try out Trusted Publishing and provide feedback during this beta phase. |
| 90 | +Email [support+orgs@pypi.org](mailto:support+orgs@pypi.org) |
| 91 | +(or click [this link for a pre-filled email](mailto:support+orgs@pypi.org?subject=PyPI%20GitLab%20Self-Managed%20Interest&body=Hi%20PyPI%20Support%2C%0A%0AOur%20organization%20%3CREPLACE%20WITH%20PyPI%20ORG%20NAME%3E%20is%20interested%20in%20the%20Trusted%20Publisher%20beta%20for%20GitLab%20Self-Managed%20Instances.%0A%0AOur%20GitLab%20Instance%27s%20URL%20is%3A%20https%3A%2F%2F%3CYOUR%20INSTANCE%20URL%3E%0AWe%20have%20confirmed%20that%20these%20endpoints%20are%20accessible%3A%0A%20%20*%20https%3A%2F%2F%3CYOUR%20INSTANCE%20URL%3E%2F.well-known%2Fopenid-configuration%0A%20%20*%20https%3A%2F%2F%3CYOUR%20INSTANCE%20URL%3E%2Foauth%2Fdiscovery%2Fkeys%0A%0ALooking%20forward%20to%20hearing%20back%20from%20you%20soon.) that you can update with your details). |
| 92 | + |
| 93 | +## Pending Trusted Publishers for Organizations Feature |
| 94 | + |
| 95 | +Oh, and one more thing - an important feature of PyPI Organizations is now available: |
| 96 | + |
| 97 | +You can now create a **pending** Trusted Publisher at the Organization level. |
| 98 | + |
| 99 | +Why does this matter? Previously, a PyPI user account creating a Pending Trusted Publisher (for a project that does not yet exist) |
| 100 | +would become the Owner of the project once it's been uploaded by the Trusted Publisher. |
| 101 | +This made sense for individual users, but for Organizations, it meant that the user who **created** the Pending Trusted Publisher |
| 102 | +would become the Owner of the project once it was published, |
| 103 | +and may overlook transferring ownership back to the Organization, which is less than ideal. |
| 104 | + |
| 105 | +With this new feature, when creating a Pending Trusted Publisher at the Organization level, |
| 106 | +the project will be owned by the Organization itself once it's published, |
| 107 | +regardless of which user created the Pending Trusted Publisher. |
| 108 | + |
| 109 | +This makes managing projects in Organizations way easier, |
| 110 | +making sure projects belong to the Organization itself and not just whoever set things up. |
| 111 | + |
| 112 | +If you have a PyPI Organization and wish to create a Pending Trusted Publisher, |
| 113 | +check it out on your Organization's Trusted Publishers page, by following: |
| 114 | + |
| 115 | +1. Navigate to your PyPI Organization's page (e.g., `https://pypi.org/organizations/<your-org-name>/`) |
| 116 | +2. Click on the "Publishing" tab on the sidebar. |
| 117 | +3. See the forms to create a Pending Trusted Publisher for your Organization. |
| 118 | + |
| 119 | +All other behaviors of Pending Trusted Publishers remain the same, |
| 120 | +see the [Trusted Publishers documentation](https://docs.pypi.org/trusted-publishers/creating-a-project-through-oidc/) |
| 121 | +for more details. |
| 122 | + |
| 123 | +## What's next? |
| 124 | + |
| 125 | +We're continuing to work on making PyPI publishing safer and more secure, |
| 126 | +so we'll keep watching how Trusted Publishing adoption grows. |
| 127 | +During the GitLab Self-Managed beta, we'd love to hear your feedback |
| 128 | +so we can improve things based on how you actually use it. |
| 129 | + |
| 130 | +Some next step ideas we have, and would love your feedback on: |
| 131 | + |
| 132 | +- Adding support for [GitHub Enterprise Server instances](https://github.com/pypi/warehouse/issues/18970) |
| 133 | +- Adding support for [GitHub Actions Reusable Workflows](https://github.com/pypi/warehouse/issues/11096) |
| 134 | +- Adding support for [other publishing platforms](https://github.com/pypi/warehouse/issues/18889) |
| 135 | + |
| 136 | +For any of these, feel free to visit the related GitHub issue |
| 137 | +and add your :thumbsup: reaction to the main issue to help us sort them by interest. |
| 138 | + |
| 139 | +Live long, and publish! :vulcan: |
0 commit comments