PyPI 发布认证(v1)
类型 URI:https://pypi.com.cn/attestations/publish/v1
版本 1.0
目的
为通过 Trusted Publishing 发布的 PyPI 软件包提供最小的“隐式”数字认证。
用例
受信任的发布者可以在 PyPI 项目的特定版本发布过程中生成此证明。这使得该项目的使用者能够验证以下内容:
- 特定版本分发(即 sdist 或 wheel)实际上是通过受信任的发布者上传的,而不是通过其他发布机制(例如本地持有的 API 令牌)上传的。
- 使用特定的受信任发布者身份向项目发布内容,例如特定的 GitHub Actions 工作流、GitLab 身份、Google Cloud 服务帐户等。
综合起来,这些功能允许用户通过断言软件包的文件是通过与特定机器身份对应的短期凭证(例如 GitHub Actions 工作流)发布的,从而对发布到 PyPI 的项目的完整性(但不一定是可信度)建立更高程度的信心。
这还可以与监控相结合,例如监控 PyPI 项目的已认证可信发布者随时间的变化,以指示该项目可能存在的恶意更改。
先决条件
该谓词依赖于整体证明框架。
模型
该谓词表达了受信任的发布者将软件包发布到 PyPI 的意图。
它通过生成签名的身份隐式地传递受信任发布者(在发布时)的状态。根据PEP 740,可以在验证期间通过 PyPI 索引 API 提供的“来源”对象对该身份进行交叉验证。
模式
此谓词没有模式。类型 URI 是唯一必需字段,且必须为空https://pypi.com.cn/attestations/publish/v1。
正文predicate本身必须为空(即空的 JSON 对象{})或未提供(即 JSON null)。