跳到内容

将受信任的发布者添加到现有的 PyPI 项目

将受信任的发布者添加到 PyPI 项目只需要一个简单的设置步骤。

"您的项目" 页面 上,单击您要配置的任何项目的“管理”

Image showing the 'Your Projects' page

然后,单击项目侧边栏中的“发布”

Image showing the 'Publishing' link in the project sidebar

该链接将带您到项目的发布者配置页面,您可以在其中配置 PyPI 支持的不同平台(如 GitHub Actions)的受信任发布者。

要启用发布者,您需要告诉 PyPI 如何信任它。每个受信任的发布者都有自己的配置要求;单击下面的选项卡以查看每个选项卡。

对于 GitHub Actions,您 **必须** 提供仓库所有者的名称、仓库的名称以及授权上传到 PyPI 的 GitHub Actions 工作流的文件名。此外,您还可以 **可选地** 提供 GitHub Actions 环境 的名称。

例如,如果您在 https://github.com/octo-org/sampleproject 上有一个项目,该项目使用在 .github/workflows/release.yml 中定义的发布工作流和名为 release 的自定义环境,那么您将执行以下操作

Image showing adding a new GitHub publisher

注意

配置环境是可选的,但 **强烈** 建议:使用 GitHub 环境,您可以对受信任的工作流应用额外的限制,例如要求仓库维护者的受信任子集在每次运行时进行手动批准。

单击“添加”后,您的发布者将被注册,并将显示在页面顶部

Image showing a newly added GitHub publisher

从现在开始,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 的形式,您将执行以下操作

Image showing adding a new Google Cloud publisher

警告

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

单击“添加”后,您的发布者将被注册,并将显示在页面顶部

Image showing a newly added Google Cloud publisher

对于 ActiveState,您必须提供 ActiveState 项目的名称、该项目所属的 ActiveState 组织以及执行发布操作的 ActiveState 用户。了解有关在 ActiveState Platform 上进行设置的更多信息 此处显示添加新的 ActiveState 发布者的图像 单击“添加”后,您的发布者将被注册,并将显示在页面顶部: 显示新添加的 ActiveState 发布者的图像

注意

目前,只支持托管在 https://gitlab.com 上的项目。不支持自托管实例。

对于 GitLab CI/CD,您 **必须** 提供仓库的命名空间、仓库的名称以及授权上传到 PyPI 的顶级 GitLab CI/CD 管道定义的文件路径。此外,您还可以 **可选地** 提供 GitLab CI/CD 环境 的名称。

例如,如果您在 https://gitlab.com/namespace/sampleproject 上有一个项目,该项目在 .gitlab-ci.yml 中定义了顶级管道和名为 release 的自定义环境,那么您将执行以下操作

Image showing adding a new GitLab publisher

注意

配置环境是可选的,但 **强烈** 建议:使用 GitLab 环境,您可以对受信任的工作流应用额外的限制,例如要求仓库维护者的受信任子集在每次运行时进行手动批准。

单击“添加”后,您的发布者将被注册,并将显示在页面顶部

Image showing a newly added GitLab publisher

从现在开始,namespace/sampleproject 上的 .gilab-ci.yml 管道将能够从 PyPI 为您注册的项目生成短期 API 令牌。

发布者可以注册到多个 PyPI 项目(例如,对于多项目仓库),单个 PyPI 项目可以有多个发布者(例如,对于不同架构、操作系统上的多个工作流)。