Skip to content

Commit 8900e89

Browse files
authored
blog: trusted publishing growth, glsm, pending tp for orgs (#19019)
* blog: tp growth, glsm,pending for orgs --------- Signed-off-by: Mike Fiedler <miketheman@gmail.com>
1 parent 7c68037 commit 8900e89

File tree

4 files changed

+144
-0
lines changed

4 files changed

+144
-0
lines changed

docs/blog/assets/2025-11-10-trusted-publishers-for-orgs/files_added_to_pypi.svg

Lines changed: 1 addition & 0 deletions
Loading

docs/blog/assets/2025-11-10-trusted-publishers-for-orgs/files_added_to_pypi_pct.svg

Lines changed: 1 addition & 0 deletions
Loading
Lines changed: 139 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,139 @@
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+
![Monthly File Uploads to PyPI via Trusted Publishers vs Non-Trusted Publishers](../assets/2025-11-10-trusted-publishers-for-orgs/files_added_to_pypi.svg)
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+
![Monthly File Uploads to PyPI via Trusted Publishers vs Non-Trusted Publishers, stacked](../assets/2025-11-10-trusted-publishers-for-orgs/files_added_to_pypi_pct.svg)
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:

docs/mkdocs-blog.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,9 @@ theme:
2727
- navigation.footer
2828
markdown_extensions:
2929
- footnotes
30+
- pymdownx.emoji:
31+
emoji_index: !!python/name:material.extensions.emoji.twemoji
32+
emoji_generator: !!python/name:material.extensions.emoji.to_svg
3033
- pymdownx.superfences:
3134
custom_fences:
3235
- name: mermaid

0 commit comments

Comments
 (0)