SuperAPI AI 工具集

nuget-trusted-publishing

编程与开发

查看项目

更新于 10-16 00:05

技能介绍

用途:在 GitHub Actions 仓库中为 NuGet 包配置可信发布(Trusted Publishing),以基于 OIDC 的短期令牌替代长期 API 密钥,无需轮换或担心密钥泄露。仅覆盖 GitHub Actions 场景,且用户需有 nuget.org 账户以创建可信发布策略。

主要能力:识别可打包项目并分类(模板、MCP 服务器、dotnet 工具、类库、应用包),校验 PackageId、Version、PackAsTool、PackageType 等必需属性,检查版本一致性(如 MCP 服务器的 server.json 与 .csproj 版本),查找已有发布工作流,并生成或改造发布工作流。

使用方式:先评估仓库并报告发现;本地用 dotnet pack -c Release -o ./artifacts 验证 .nupkg;再到 nuget.org/account/trustedpublishing 添加策略,填写仓库所有者、仓库名和精确的工作流文件名(不含路径,大小写不敏感,不能用 workflow 的 name 字段),可选配置 GitHub Environment(如 release)并添加环境密钥 NUGET_USER(nuget.org 用户名,非邮箱)。工作流中需设置 permissions: id-token: write 与 contents: read,并在推送前加入 NuGet/login@v1 步骤,推送时使用 --api-key ${{ steps.login.outputs.NUGET_API_KEY }} --skip-duplicate。

适用场景:新建 NuGet 发布流程、从 API 密钥迁移到 OIDC、为 dotnet 工具/MCP 服务器/模板包配置发布、被要求移除 NuGet API 密钥或使用 NuGet/login。

限制与注意:涉及基础设施或认证问题修复一次仍失败时应停止并询问用户;删除密钥、标签、发布或更改包 ID 前必须确认,包 ID 永久不可撤销;私有仓库策略先临时生效 7 天,首次成功发布后转永久;旧 API 密钥需在可信发布验证成功后再删除。具体模板与逐类型细节见其 references 文件,资料未提供完整代码示例。