Skip to content

故障排除

GitHub 上的可重用工作流程

目前,可重用工作流不能用作受信任发布者中的工作流。这是一个实际限制,我们正在 仓库编号为 11096 的问题中进行跟踪。

速率限制

PyPI 目前对受信任发布者注册实施速率限制:单个用户或 IP 地址在 24 小时内最多只能注册 100 个发布者。

对于大多数用户来说,这应该绰绰有余(因为相对于发布者的使用频率而言,发布者注册应该很少发生),但拥有大量项目或通过共享 IP 地址访问 PyPI 的维护者可能会遇到速率限制错误。如果您遇到这种情况,请等待 24 小时后重试, 如果问题仍然存在,请联系 PyPI 管理员。

代币铸造

以下是您可能从该端点看到的一些错误简要列表mint-token :

  • not-enabled这表明 PyPI 后端已完全禁用 OIDC。除非PyPI 管理员决定禁用 OIDC 支持,否则在正常操作期间您不应看到此消息。
  • invalid-payload提交到端点的 OIDC 令牌有效负载mint-token 格式不正确。有效负载必须是 JSON 序列化对象,其格式如下:
{
  "token": "oidc-token-here"
}

不支持其他布局。

  • invalid-payload错误信息unknown trusted publishing issuer:生成令牌的 OIDC 提供程序不受支持。这在使用自托管的 GitLab 实例时可能会发生,因为目前仅支持托管在 https://gitlab.com上的项目。
  • invalid-token:OIDC 令牌本身格式不正确、签名无效、已过期等等。这几乎涵盖了 OIDC 令牌(它只是一个 JWT) 在与发布者进行匹配之前可能发生的任何故障模式。
  • invalid-pending-publisher此外invalid-publisher,OIDC 令牌本身格式正确(且具有有效签名),但与任何已知的(待审核的)OIDC 发布者都不匹配。这可能表明用户/项目设置中指定的 OIDC 发布者与实际 OIDC 令牌中表示的声明不匹配。请检查是否存在拼写错误!如果您使用的是 GitHub Actions,请检查工作流是否使用了与在 PyPI 上配置发布者时相同的环境。
  • invalid-publisher对于之前运行正常的项目:这通常表示存在拼写错误,或者双方的某些内容发生了更改。我们遇到的一个例子是,当源代码仓库被重命名时,PyPI 上的配置仍然使用旧的仓库名称。对于 GitHub,请检查 双方的`<path> repository_owner`、` <workflow_filename>` 和 `<workflow_filename>` 值是否相同。repository

上传错误

使用待定发布者创建新项目时,可能会遇到如下错误:

Non-user identities cannot create new projects. This was probably caused by
successfully using a pending publisher but specifying the project name
incorrectly (either in the publisher or in your project's metadata).
Please ensure that both match.

这意味着待审核发布者已成功创建项目,但上传元数据中提供的项目名称与实际创建的项目名称不匹配。这可能是由于待审核发布者输入的项目名称或元数据名称有误或其他错误造成的。

例如,如果一个项目python-example在其元数据中指定了 a,但注册为example待定发布者,则会导致此错误。

要解决这个问题,您必须确定哪个名称才是正确的:

  • 如果待审核发布者中使用的名称正确,则必须更新项目元数据以反映该名称。之后使用受信任发布者上传的内容将自动完成,无需其他操作。

  • 如果项目元数据中使用的名称正确,则必须:

  • 请前往您的项目并删除错误创建的项目。此操作也会同时删除错误注册的受信任发布者。

  • 使用更正后的项目名称创建一个新的待发布版本。

下一次上传将创建具有预期名称的项目,后续上传也将按预期工作。