用 GitHub Actions 自动发布 opencode-anthropic-auth:publish.yml 配置完整讲解
用 GitHub Actions 自动发布 opencode-anthropic-authpublish.yml 配置完整讲解【免费下载链接】opencode-anthropic-auth项目地址: https://gitcode.com/GitHub_Trending/op/opencode-anthropic-authopencode-anthropic-auth是一个为 OpenCode 提供 Anthropic Claude 账号 OAuth 登录的插件让 AI 编程工具可以直接使用 Claude Pro/Max 订阅权限。本文带你读懂一份仅 31 行的 publish.yml 文件完整讲解如何用 GitHub Actions 自动发布 npm 包从手动触发入口、最小权限配置到 npm publish 命令帮你在 10 分钟内搞懂整个发布流程。 项目简介这个插件是做什么的插件的核心代码只有 index.mjs 一个文件它向 OpenCode 注入了三种认证方式Claude Pro/Max 登录通过 OAuth 授权码 PKCE 流程换取 token并把所有模型的用量成本置为 0订阅套餐内免费使用Create an API Key登录后自动在控制台创建一把 API Key手动输入 API Key兜底方案当 token 过期时插件会用 refresh_token 自动续期全程无感。理解了项目结构我们再来看它是怎么自己发版的。 发布流程全景一条命令从版本号到 npm 仓库整个自动发布流程像一条流水线本地执行一个脚本就能全部跑完本地执行 publish.ts ↓ 版本号 1patch/minor/major提交并推送到仓库 ↓ gh workflow run 手动触发 publish.yml ↓ GitHub Actions 云端拉代码 → 装依赖 → npm publish 上架 npm 仓库 本地负责改版本号云端负责发布职责清晰、互不干扰。 逐行解读 publish.ymlGitHub Actions 发布配置详解发布的全部云端逻辑都写在 .github/workflows/publish.yml 中我们分三段来看。1️⃣ 手动触发入口workflow_dispatch 与 bump 参数.github/workflows/publish.ymlon: workflow_dispatch: inputs: bump: description: Version bump type required: false default: patch三个要点配置含义workflow_dispatch工作流不会在 push 代码时自动运行只能在 Actions 页面手动点Run workflow触发bump输入参数版本递增类型patch/minor/major作为发布备注传入云端required: falsedefault: patch不填参数也能直接发补丁版本降低操作成本 这种只允许手动触发的设计让发版变成一个深思熟虑的动作避免误触发布。2️⃣ 最小权限原则permissions 配置.github/workflows/publish.ymlpermissions: id-token: write contents: readid-token: write允许工作流生成 OIDC 身份令牌是 npm 发布审计provenance功能的前提contents: read只授予读取仓库代码的最低权限这正是 CI/CD 安全中的最小权限原则——只给工作流它真正需要的权限是开源项目的最佳实践。3️⃣ 发布任务四个步骤一气呵成.github/workflows/publish.ymljobs: publish: runs-on: ubuntu-latest steps: - uses: actions/checkoutv4 - uses: actions/setup-nodev4 with: node-version: 24 registry-url: https://registry.npmjs.org - run: npm install - run: npm publish --access public env: NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} NPM_CONFIG_PROVENANCE: false步骤作用actions/checkoutv4把仓库代码拉到云端运行器actions/setup-nodev4安装 Node.js 24并把 registry 指向 npm 官方源npm install安装 package.json 中声明的依赖npm publish --access public把当前版本发布到公共 npm 仓库⚠️ 两个关键细节NPM_TOKEN 是仓库 Secrets令牌从未写入代码只在运行时以NODE_AUTH_TOKEN环境变量注入。你需要提前在仓库的 Secrets 配置页里填好 npm 令牌--access public对带作用域scoped的包发布时必不可少否则会报 402 错误NPM_CONFIG_PROVENANCE: false则显式关闭了发布审计信息️ 本地一键触发publish.ts 发布脚本云端的另一半是一个 29 行的小脚本 script/publish.ts。它就是整条流水线的遥控器依次做四件事递增版本号执行npm version ${bumpType} --no-git-tag-version不带 git tag只改 package.json 中的 version 字段提交并推送git addgit commit -m Bump version to x.x.xgit push触发工作流gh workflow run publish.yml -f bump${bumpType}把版本号类型传进云端打印成功提示确认版本已 bump、工作流已触发 用法脚本首行的#!/usr/bin/env bun表明它由 bun 运行bun run script/publish.ts patch当前项目版本为 0.0.13见 package.json正是这条流水线一步步发出来的。️ 如何为自己的项目配置同样的自动发布三步即可复刻克隆仓库学习结构git clone https://gitcode.com/GitHub_Trending/op/opencode-anthropic-auth复制工作流文件在你的项目根目录创建.github/workflows/publish.yml内容可参考 publish.yml配置 NPM_TOKEN到 npmjs.com 生成一个 Access Token选发布访问权限填入仓库的 Secrets 配置页常见注意事项包名必须在 npm 上未被占用工作流中的 Node 版本要与你项目要求一致本项目用 Node 24依赖锁定文件建议提交到仓库本项目用的是 bun.lock❓ 常见问题 FAQQ工作流里为什么不需要执行npm loginAsetup-node把secrets.NPM_TOKEN注入为NODE_AUTH_TOKEN环境变量npm 会直接读取它完成鉴权。Qpush 代码会自动发版吗A不会。workflow_dispatch只支持手动触发如果你希望打 tag 后自动发布可以改为on: push: tags: [v*]。Qbump 参数会修改版本号吗A不会。云端工作流只负责发布当前版本改版本号是本地 publish.ts 的职责两者分工明确。✅ 回顾一下一份 publish.yml 一个 publish.ts就搭起了本地改版本 → 云端自动发布的完整链路。最小权限、手动触发、Secrets 管理令牌这三个安全好习惯值得在你自己的项目里照搬。【免费下载链接】opencode-anthropic-auth项目地址: https://gitcode.com/GitHub_Trending/op/opencode-anthropic-auth创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考