mcpField
G
github-actions-catalog

github-actions-catalog

github.com/byte-me-labs云与 DevOps192 次安装6 天前更新
代码仓库

关于 github-actions-catalog

github-actions-catalog 是用于查找和核对 GitHub Actions 版本的技能,面向维护 CI/CD 工作流的开发者。它通过每周更新的版本数据集支持搜索、批量检查和升级操作。

主要功能

  1. 01按关键词、主题或语言搜索
  2. 02查询最新发布版本
  3. 03批量检查仓库中的 Action
  4. 04为工作流升级或固定版本
  5. 05提供 Dependabot 配置指引

适用场景

  1. 01确认某个 Action 的最新版本
  2. 02查找适用于部署或代码检查的 Action
  3. 03批量检查工作流中的版本
  4. 04为生产工作流固定 Action 版本

安装

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

$npx skills add https://github.com/byte-me-labs/github-actions-catalog --skill github-actions-catalog

安装后在 Claude Code 中输入/github-actions-catalog确认已加载。

附带文件LICENSE

详细介绍

GitHub Actions 目录

收录了 4,600+ 个 GitHub Actions — 可按关键词、主题或语言搜索,查询最新发布版本,并升级 CI/CD 工作流。每周更新。

适用场景

  • 用户询问“actions/checkout 的最新版本是什么?”
  • 用户想将某个 Action 升级或固定到特定版本
  • 用户想批量检查仓库中使用的所有 Action 版本
  • 用户需要查找 Action:“用于部署到 AWS 的 GitHub Action”
  • 用户询问“有什么好的 Docker lint Action?”或“用于 XYZ 的最佳 TypeScript Action 是什么?”
  • 用户提到某个可能已过时的 Action

当前版本

actions-versions.json 中跟踪了 4,600+ 个 GitHub Actions(星标数 >= 10)的最新版本,数据来源于完整的 Marketplace 验证数据集。回答版本相关问题前,务必先读取此文件 — 该文件每周自动刷新。

纯 JSON 格式 — 可使用 jq 进行结构化查询,也可使用 grep 快速搜索。

工作流

1. 查询目标 Action

如果用户指定了某个 Action(例如 actions/setup-go),请先读取 actions-versions.json,查询缓存的最新版本。

# With jq (recommended):
jq -r '.actions[] | select(.action | test("setup-go")) |
  "\(.action) → latest: \(.tag) (major: \(.major), released: \(.released))"' actions-versions.json

# Without jq — grep the compact JSON directly:
grep '"setup-go"' actions-versions.json

如果该 Action 不在缓存中,则实时获取:

gh release view -R <owner>/<repo> --json tagName -q '.tagName'
2. 查找其使用位置
grep -rn "uses: <owner>/<repo>@" .github/workflows/
3. 应用更新

在每个工作流文件中,将 @<old-version> 替换为 @<new-major-version>, 然后验证 YAML 仍然有效。

示例
# 1. Query cached versions
jq -r '.actions[] | select(.action == "actions/setup-go")' actions-versions.json
# → {"action":"actions/setup-go","stars":1722,"major":"6","tag":"v6.5.0","released":"2026-06-24"}

# 2. Find usages
grep -rn "uses: actions/setup-go@" .github/workflows/
# → .github/workflows/ci.yml:15: uses: actions/setup-go@v5

# 3. Edit: v5 → v6

版本固定参考

模式升级行为风险
@v4在主版本内自动更新中 — 大多数情况下安全
@v4.2.0手动,精确到次版本低 — 固定到特定发布版本
@11bd719...手动,固定到提交 SHA最低 — 供应链安全
@main始终使用最新开发版本高 — 上游变更可能导致故障

建议:开发/CI 环境使用 @v4 形式,生产环境固定到 SHA。

智能搜索

无需浏览 Marketplace,即可从缓存数据集中找到合适的 Action:

# Search by name + description (keyword in either field)
jq -r '.actions[] | select(.action + " " + .desc | test("lint"; "i")) |
  "\(.action)  ⭐\(.stars)  \(.desc)"' actions-versions.json

# Search by topic tag
jq -r '.actions[] | select(.topics[]? | test("docker")) |
  "\(.action)  ⭐\(.stars)"' actions-versions.json

# Top 20 by stars
jq -r '.actions[:20][] | "\(.action)  ⭐\(.stars)  \(.desc)"' actions-versions.json

# Filter by language (TypeScript / Docker / Composite actions)
jq -r '.actions[] | select(.lang == "TypeScript") |
  "\(.action)  ⭐\(.stars)"' actions-versions.json | head -20

如果没有 jq,可直接使用 grep 搜索精简 JSON:

grep -i lint actions-versions.json
grep -i docker actions-versions.json

批量检查

检查仓库工作流中使用的所有 Action:

grep -rohP 'uses:\s*\K[^@]+' .github/workflows/ | sort -u |
  while read action; do
    latest=$(jq -r --arg a "$action" '.actions[] | select(.action == $a) | .tag' actions-versions.json)
    [[ -n "$latest" ]] && echo "$action → $latest" || echo "$action → N/A"
  done

Dependabot — 推荐用于持续自动化

强烈建议在每个仓库中添加 .github/dependabot.yml。当 Action 发布新版本时,Dependabot 会自动创建 PR — 无需手动检查。

本技能与 Dependabot 的区别
本技能Dependabot
适用场景按需查询 / 批量检查持续自动更新
触发方式你在对话中提出请求发布新版本
输出答案 + 行内编辑自动创建 PR
使用时机“setup-go 的最新版本是什么?”/“升级我的所有 Action”设置一次,无需操心

两者解决的问题不同 — 建议同时使用。

设置
# .github/dependabot.yml
version: 2
updates:
  - package-ecosystem: "github-actions"
    directory: "/"
    schedule:
      interval: "weekly"
设置 Dependabot 后
  • Dependabot 会通过自动创建 PR,确保你的 Action 保持最新。
  • 当你需要快速获取答案(“X 的最新版本是什么?”)时,本技能可根据缓存的 actions-versions.json(4,600+ 个 Action)即时回复。

评论

支持 Markdown