将受信任的发布者添加到现有的 PyPI 项目
将受信任的发布者添加到 PyPI 项目只需要一个简单的设置步骤。
在 "您的项目" 页面 上,单击您要配置的任何项目的“管理”
然后,单击项目侧边栏中的“发布”
该链接将带您到项目的发布者配置页面,您可以在其中配置 PyPI 支持的不同平台(如 GitHub Actions)的受信任发布者。
要启用发布者,您需要告诉 PyPI 如何信任它。每个受信任的发布者都有自己的配置要求;单击下面的选项卡以查看每个选项卡。
对于 GitHub Actions,您 **必须** 提供仓库所有者的名称、仓库的名称以及授权上传到 PyPI 的 GitHub Actions 工作流的文件名。此外,您还可以 **可选地** 提供 GitHub Actions 环境 的名称。
例如,如果您在 https://github.com/octo-org/sampleproject
上有一个项目,该项目使用在 .github/workflows/release.yml
中定义的发布工作流和名为 release
的自定义环境,那么您将执行以下操作
注意
配置环境是可选的,但 **强烈** 建议:使用 GitHub 环境,您可以对受信任的工作流应用额外的限制,例如要求仓库维护者的受信任子集在每次运行时进行手动批准。
单击“添加”后,您的发布者将被注册,并将显示在页面顶部
从现在开始,octo-org/sampleproject
上的 release.yml
工作流将能够从 PyPI 为您注册的项目生成短期 API 令牌。
对于 Google Cloud,您 **必须** 提供用于发布的帐户或服务帐户的电子邮件地址。 您可以在此处详细了解 Google Cloud 服务帐户。
例如,如果您在项目“PROJECT_NAME”中创建了一个名为“SERVICE_ACCOUNT_NAME”的服务帐户,该服务帐户正在您要从中发布到 PyPI 的环境中使用,那么您的服务帐户电子邮件将采用 SERVICE_ACCOUNT_NAME@PROJECT_NAME.iam.gserviceaccount.com
的形式,您将执行以下操作
警告
Google Cloud 还为各种产品提供了 默认服务帐户
- Compute Engine:
PROJECT_ID-compute@developer.gserviceaccount.com
- App Engine:
PROJECT_NAME@appspot.gserviceaccount.com
但是,**不建议** 将它们用于发布,因为它们在创建时默认提供给每个服务。
注意
配置主题是可选的。主题是代表进行请求的主体的数字 ID。虽然不是必需的,但提供主题会进一步限制用于发布的身份,确保只有特定服务帐户实例可以发布,而不是任何具有配置电子邮件的服务帐户。有关更多详细信息,请参见 https://cloud.google.com/docs/authentication/token-types#id-contents
单击“添加”后,您的发布者将被注册,并将显示在页面顶部
对于 ActiveState,您必须提供 ActiveState 项目的名称、该项目所属的 ActiveState 组织以及执行发布操作的 ActiveState 用户。了解有关在 ActiveState Platform 上进行设置的更多信息 此处。 单击“添加”后,您的发布者将被注册,并将显示在页面顶部:
注意
目前,只支持托管在 https://gitlab.com 上的项目。不支持自托管实例。
对于 GitLab CI/CD,您 **必须** 提供仓库的命名空间、仓库的名称以及授权上传到 PyPI 的顶级 GitLab CI/CD 管道定义的文件路径。此外,您还可以 **可选地** 提供 GitLab CI/CD 环境 的名称。
例如,如果您在 https://gitlab.com/namespace/sampleproject
上有一个项目,该项目在 .gitlab-ci.yml
中定义了顶级管道和名为 release
的自定义环境,那么您将执行以下操作
注意
配置环境是可选的,但 **强烈** 建议:使用 GitLab 环境,您可以对受信任的工作流应用额外的限制,例如要求仓库维护者的受信任子集在每次运行时进行手动批准。
单击“添加”后,您的发布者将被注册,并将显示在页面顶部
从现在开始,namespace/sampleproject
上的 .gilab-ci.yml
管道将能够从 PyPI 为您注册的项目生成短期 API 令牌。
发布者可以注册到多个 PyPI 项目(例如,对于多项目仓库),单个 PyPI 项目可以有多个发布者(例如,对于不同架构、操作系统上的多个工作流)。