SuperAPI AI 工具集

uv-trusted-publish-github-action

编程与开发

查看项目

更新于 10-16 00:05

技能介绍

用途:帮助智能体为使用 uv 的 Python 包配置从 GitHub Actions 到 PyPI 的可信发布,适用于初次搭建、修复发布工作流或对接发布自动化等场景。

主要能力:检查打包就绪情况,包括 pyproject.toml、包元数据(名称与版本配置)、构建后端配置、仓库是否能用 uv build 构建、.github/workflows/ 中是否已有发布流程;确认发布目标为 PyPI 还是 TestPyPI,以及触发分支或标签;优先采用 PyPI 可信发布而非静态凭据。

使用方式:GitHub Actions 的常见模式应包含 permissions: id-token: write、一个 GitHub environment(通常命名为 pypi)、astral-sh/setup-uv、uv build 与 uv publish。其原理是 GitHub Actions 获取 OIDC 身份令牌,PyPI 信任已配置的仓库与环境,从而无需保存 API token 密钥即可发布。触发方式应与仓库发布流程对齐,例如版本标签、GitHub release 事件或在发布 PR 合并后发布;Astral 官方示例仓库使用专门的 release 工作流。

适用场景:仓库为可发布的 Python 包(而非普通应用或脚本仓库)时,用于搭建全新可信发布、修复失败的发布工作流,或将发布接入已有发布自动化。

限制与检查项:若发布目标或触发策略不明确,应先确认再设置自动化;需确认 uv build 成功、工作流含 id-token: write、GitHub environment 名称与 PyPI 上可信发布者配置一致、包元数据完整;不要为非库仓库配置发布,也不要在缺少理由时混用多种打包流程。若 PyPI 侧尚未配置可信发布,这属于必须的外部步骤,应明确说明。官方参考:docs.astral.sh/uv/guides/package/、github.com/astral-sh/setup-uv、github.com/astral-sh/trusted-publishing-examples。