Communitygithub.com

lyniciy/actup

在终端中交互式升级 GitHub Actions 版本

actup 是什么?

该技能可以扫描 `.github/workflows/` 目录下的 YAML 文件,提取所有 `uses:` 引用,自动解析每个 Action 的最新标签版本,并生成带有差异建议的 Markdown 报告。它支持通过 `gh` CLI、GitHub API 或搜索 MCP 来获取版本信息,能够检测可能破坏现有工作流的重大变更(例如 `actions/checkout` 从 v3 升级到 v4 时 Node 运行时的变化)。适用于 Claude Code、Cursor、Codex 等支持技能的 AI 代理,帮助开发者快速识别过时的 Action 并规划版本升级,但默认情况下不会直接修改工作流文件,而是以预览形式提供建议。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add lynicis/actup

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

GitHub Actions 更新器

保持 .github/workflows/*.yml 和 .github/workflows/*.yaml 文件更新:扫描 Action,解析最新版本,并提出升级建议。

快速开始

当用户询问类似以下问题时:

"更新我的 GitHub Actions" "哪些 Action 已经过时?" "升级我的工作流中的 Action"

按照下面的工作流执行,并返回带有差异风格建议的 Markdown 报告。

工作流

  1. 扫描工作流

    • 查找所有 .github/workflows/*.yml 和 .github/workflows/*.yaml 文件。
    • 如果不存在,告知用户并停止。
  2. 提取 uses: 引用

    • 解析每个工作流中的 uses: 行。
    • 跳过:
      • 本地路径:./...
      • Docker 引用:docker://...
      • 完整的 SHA 提交:任何看起来像 40 字符十六进制 SHA 的内容
    • 记录:action、current_version、workflow_file、line_number。
  3. 解析最新版本

    • 将每个 Action 拆分为 owner/repo。
    • 按以下顺序尝试工具:
      1. 如果 gh 可用,使用 gh api repos/{owner}/{repo}/tags --jq '.[].name'。
      2. 使用 fetch 访问 https://api.github.com/repos/{owner}/{repo}/tags。
      3. 使用 Brave Search / Google Search MCP 搜索 "{owner}/{repo} latest release tag"。
    • 过滤标签以确保是有效的语义化版本。
    • 默认优先使用主版本标签(如 v5)而非完整语义化版本(如 v5.3.1)。
    • 如果没有主版本标签,则回退到最高的语义化版本标签。
  4. 检测重大变更

    • 如果最新版本的主版本号高于当前版本,则标记为重大变更。
    • 与下方的内置注册表交叉检查以获取已知警告。
  5. 生成建议报告

    • 生成包含以下内容的 Markdown 报告:
      • 摘要表格:Action | 当前版本 | 最新版本 | 重大变更?| 文件
      • 每个 Action 的差异块
      • 重大变更警告(带 ⚠)
    • 除非用户明确要求,否则不要编辑工作流文件。

重大变更注册表

- action: actions/checkout
  from_major: 3
  to_major: 4
  warning: "Node 运行时从 16 升级到 20。请检查自定义运行器和自托管设置。"
- action: actions/setup-node
  from_major: 3
  to_major: 4
  warning: "Node 16 运行时已弃用;现在使用 Node 20。"
- action: actions/setup-go
  from_major: 4
  to_major: 5
  warning: "Node 20 运行时。请验证任何自定义缓存键或副作用。"

输出模板

## GitHub Actions 更新报告

| Action | 当前版本 | 最新版本 | 重大变更?| 文件 |
|--------|---------|--------|-----------|------|
| actions/checkout | v3 | v4 | ⚠ 是 | .github/workflows/ci.yml |

### 建议的更改

`.github/workflows/ci.yml`:
```diff
- uses: actions/checkout@v3
+ uses: actions/checkout@v4

重大变更警告

  • actions/checkout@v3 → v4: Node 运行时从 16 升级到 20。请检查自定义运行器和自托管设置。

## 规则

- 永远不要静默写入工作流文件。
- 在任何编辑之前,务必显示差异风格预览。
- 如果遇到 GitHub API 速率限制,则回退到搜索 MCP 或手动指导。
- 如果某个 Action 没有语义化版本标签,则注明“无法确定最新版本”。

相关技能