mcpField
C
chrome-webstore-release-blueprint

chrome-webstore-release-blueprint

github.com/brianlovin云与 DevOps3792.8k 次安装31 周前更新
代码仓库

关于 chrome-webstore-release-blueprint

Chrome Web Store Release Blueprint 是用于配置 Chrome Web Store 发布自动化的引导技能。它逐步说明控制台与 OAuth 设置,并规划仓库脚本、CI 工作流和提交状态检查,同时要求用户确认凭据操作。

主要功能

  1. 01引导配置 Chrome Web Store 与 OAuth
  2. 02规划仓库发布脚本和 CI 工作流
  3. 03支持通过 gh 设置 GitHub 密钥
  4. 04检查提交与发布状态
  5. 05包含版本检查和发布状态处理

适用场景

  1. 01配置 Chrome Web Store 发布自动化
  2. 02设置 CI 密钥且不提交凭据
  3. 03版本未变化时跳过发布
  4. 04检查提交是否正在等待审核

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/brianlovin/agent-config --skill chrome-webstore-release-blueprint

安装后在 Claude Code 中输入/chrome-webstore-release-blueprint确认已加载。

详细介绍

Chrome Web Store 发布指南

将此技能用作实操设置指南。Agent 应逐步引导用户、征求确认,并且只自动执行可在本地或 CI 中完成的部分。

此技能的用途

  • 帮助用户从头开始设置 Chrome Web Store 发布自动化。
  • 为 Google/CWS 信息中心操作提供清晰的手动说明。
  • 用户提供凭据后,实现仓库端脚本和工作流。
  • 验证提交状态(PUBLISHED、PENDING_REVIEW 等)。

Agent 行为规则

  • 将信息中心和 OAuth 相关任务视为由用户操作;不要暗示这些操作已由你完成。
  • 每次只给出一个明确步骤,并等待用户确认后再继续。
  • 仅在需要时询问具体值,并告知用户每个值的获取位置。
  • 在日志中屏蔽机密,绝不将机密值提交到 git。
  • 如果有 gh,可提供自动上传密钥的选项;如果没有,则提供手动备用方案。

步骤 1:项目检查(处理任何凭据之前)

收集以下信息:

  • 包含扩展程序版本的 manifest 路径
  • 构建命令
  • zip/打包命令及输出文件名/路径
  • CI 平台(默认为 GitHub Actions)
  • 发布分支策略(main、标签或手动触发)
  • 本地机密文件约定(.env、.env.local 等)

明确询问:

  • “你希望 CI 仅在版本变更时发布吗?”
  • “你希望我通过 gh 配置 GitHub 密钥上传吗?”

步骤 2:详细凭据配置指南(用户 + Agent)

2.1 在 Google Cloud 中启用 API

告知用户打开:

  • https://console.cloud.google.com/apis/library/chromewebstore.googleapis.com

用户操作:

  1. 选择要使用的 Google Cloud 项目。
  2. 点击 Chrome Web Store API 对应的 Enable。

Agent 提示示例:

  • “Chrome Web Store API 显示为 Enabled 后,请告诉我,我会继续 OAuth 设置。”
2.2 配置 OAuth 同意屏幕

告知用户打开以下任一页面:

  • https://console.cloud.google.com/apis/credentials/consent
  • 如果界面发生重定向,请继续在 Google Auth Platform 的同意屏幕页面中操作。

用户操作:

  1. 选择 External 用户类型(适用于非 Workspace 内部应用)。
  2. 填写应用名称、支持邮箱和开发者联系邮箱。
  3. 保存,并继续完成各个范围步骤,除非需要自定义范围。
  4. 如果应用处于 Testing 模式,将自己的 Google 账号添加为测试用户。
  5. 保存。

Agent 指引:

  • 如果用户希望刷新令牌长期稳定可用,建议在准备就绪后将同意屏幕切换到 Production。
2.3 创建 OAuth 客户端

告知用户打开:

  • https://console.cloud.google.com/apis/credentials

用户操作:

  1. 点击 Create Credentials -> OAuth client ID。
  2. 选择应用类型 Web application。
  3. 添加以下完全一致的已获授权重定向 URI:
  • https://developers.google.com/oauthplayground
  1. 创建客户端。

记录以下值:

  • CWS_CLIENT_ID
  • CWS_CLIENT_SECRET

Agent 提示示例:

  • “准备好后,请粘贴 CWS_CLIENT_ID 和 CWS_CLIENT_SECRET(我会将它们视为机密)。”
2.4 生成刷新令牌(OAuth Playground)

告知用户打开:

  • https://developers.google.com/oauthplayground/

用户操作:

  1. 点击设置齿轮图标。
  2. 启用 Use your own OAuth credentials。
  3. 粘贴 CWS_CLIENT_ID 和 CWS_CLIENT_SECRET。
  4. 在 Step 1 中输入范围:
  • https://www.googleapis.com/auth/chromewebstore
  1. 点击 Authorize APIs。
  2. 使用拥有/发布该扩展程序的同一个 Google 账号登录。
  3. 点击 Exchange authorization code for tokens。
  4. 复制刷新令牌。

记录以下值:

  • CWS_REFRESH_TOKEN

Agent 提示示例:

  • “现在请粘贴 CWS_REFRESH_TOKEN。我只会将它放入本地机密存储或 CI 密钥中。”
2.5 获取商店 ID

记录以下值:

  • CWS_EXTENSION_ID(商店/开发者列表 URL 中的扩展程序条目 ID)
  • CWS_PUBLISHER_ID(Chrome Web Store 开发者账号上下文中的开发者/发布者 ID)

Agent 指引:

  • 如果用户不确定,请让他们打开 Chrome Web Store Developer Dashboard,并从条目/账号 URL 或账号详情中复制 ID。
2.6 凭据检查清单

在以下五项全部存在之前,请勿继续:

  • CWS_CLIENT_ID
  • CWS_CLIENT_SECRET
  • CWS_REFRESH_TOKEN
  • CWS_PUBLISHER_ID
  • CWS_EXTENSION_ID

第 3 步:本地密钥文件和 CI 密钥设置

创建本地模板文件(不要提交真实值):

CWS_CLIENT_ID=
CWS_CLIENT_SECRET=
CWS_REFRESH_TOKEN=
CWS_PUBLISHER_ID=
CWS_EXTENSION_ID=

确保真实密钥文件路径已加入 gitignore。

如果使用 GitHub Actions,请询问用户是否需要 gh 自动化。

如果需要,请验证:

gh --version
gh auth status

如果缺少 gh 身份验证,请告知用户运行:

  • gh auth login

然后实现一个辅助脚本,该脚本:

  • 从本地环境文件读取密钥值
  • 验证所有必需的键是否齐全
  • 支持 --dry-run
  • 在试运行输出中隐藏密钥值
  • 使用 gh secret set ... --repo ... 上传
  • 在缺少密钥或身份验证时立即失败

如果用户不使用 gh,请提供仓库设置中的手动密钥填写清单。

第 4 步:发布工作流蓝图(由版本触发)

围绕以下逻辑设计 CI 工作流:

  1. 读取本地清单文件中的版本。
  2. 可选地与辅助版本文件进行比较,并在不匹配时失败。
  3. 使用刷新令牌换取访问令牌:
  • POST https://oauth2.googleapis.com/token
  1. 获取 CWS 状态:
  • GET https://chromewebstore.googleapis.com/v2/publishers/<publisherId>/items/<extensionId>:fetchStatus
  1. 从以下字段提取当前已发布版本:
  • publishedItemRevisionStatus.distributionChannels[0].crxVersion
  1. 如果本地版本 == 已发布版本,则跳过发布。
  2. 如果版本已更改:
  • 构建软件包 zip
  • 上传 zip: POST https://chromewebstore.googleapis.com/upload/v2/publishers/<publisherId>/items/<extensionId>:upload
  • 在需要时通过轮询处理异步上传状态
  • 发布: POST https://chromewebstore.googleapis.com/v2/publishers/<publisherId>/items/<extensionId>:publish

将以下发布状态视为已成功提交:

  • PENDING_REVIEW
  • PUBLISHED
  • PUBLISHED_TO_TESTERS
  • STAGED

第 5 步:提交状态检查器蓝图

创建一个专门用于查询“最新提交状态”的脚本。

必需行为:

  • 接受环境变量(并可选接受 --env-file)
  • 可选接受 --manifest,用于比较本地版本
  • 支持 --json
  • 调用令牌端点和 fetchStatus
  • 输出规范化字段:
    • itemId
    • localVersion
    • publishedVersion
    • publishedState
    • submittedVersion
    • submittedState
    • upToDate
    • pendingReview
  • 在身份验证、API 或输入错误时以非零状态退出

建议加入的检查:

  • 标记清单文件与软件包元数据中的版本不匹配
  • 显示已上传版本是否正在等待审核但尚未发布
  • 未使用 --json 时,输出简洁易读的摘要

第 6 步:引导式验证流程

与用户一起执行以下步骤:

  1. 确认状态检查器在发布前可成功运行。
  2. 在所有版本来源中递增扩展程序版本(补丁版本)。
  3. 推送分支并触发工作流。
  4. 确认工作流会:
  • 跳过(如果版本未更改),或
  • 上传并提交发布。
  1. 重新运行状态检查器:
  • 许多情况下,首先会显示 PENDING_REVIEW
  • 之后应看到已发布渠道与本地版本一致

故障排除脚本(Agent 应如何说明)

  • invalid_grant:
  • 刷新令牌可能错误或已过期、OAuth 客户端可能错误,或账号可能不匹配
  • CWS 端点返回 403:
  • 账号缺少该扩展程序的发布者权限
  • 工作流无操作:
  • 按设计,本地版本与已发布版本相同
  • 上传失败:
  • 检查 API 响应、打包后的 zip 结构和清单有效性
  • 版本不匹配保护检查失败:
  • 发布前统一所有声明的版本文件

实用链接(引导期间分享)

  • Chrome Web Store API 概览: https://developer.chrome.com/docs/webstore/using-api
  • 发布端点: https://developer.chrome.com/docs/webstore/publish
  • OAuth Playground: https://developers.google.com/oauthplayground/
  • API 启用页面: https://console.cloud.google.com/apis/library/chromewebstore.googleapis.com
  • 凭据页面: https://console.cloud.google.com/apis/credentials

防护措施

  • 切勿提交凭据。
  • 切勿在工作流 YAML 中硬编码机密。
  • 未比较版本前,切勿在每次推送时自动发布。
  • 明确说明设置步骤,并在每个手动步骤中由用户确认。
  • 优先使用可重复执行的辅助脚本,而非临时的一次性命令。

评论

支持 Markdown