关于 configure-workflows
configure-workflows 用于按项目标准检查和配置 GitHub Actions 工作流,可报告缺失或过时的配置,并按要求修复。
主要功能
- 01检查工作流合规性
- 02识别缺失的工作流
- 03核对 Action 版本
- 04使用 --fix 修复工作流
适用场景
- 01审计项目的 CI/CD 工作流
- 02更新过时的 GitHub Actions
- 03添加容器构建或测试工作流
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ laurigates/ claude-plugins --skill configure-workflows安装后在 Claude Code 中输入/configure-workflows确认已加载。
附带文件REFERENCE.md
详细介绍
/configure:workflows
根据项目标准检查并配置 GitHub Actions CI/CD 工作流。
何时使用此技能
| 在以下情况下使用此技能…… | 在以下情况下采用其他方法…… |
|---|---|
| 检查 GitHub Actions 工作流是否符合项目标准 | 调试失败的 CI 运行(使用 github-actions-inspection 技能) |
| 设置容器构建、测试或 release-please 工作流 | 安装由 Claude 驱动的可复用工作流(使用 /configure:reusable-workflows) |
| 更新过时的操作版本(checkout、build-push 等) | 从头编写自定义工作流(使用 ci-workflows 技能) |
| 为现有工作流添加多平台构建或 GHA 缓存 | 配置特定于安全性的工作流(使用 /configure:security) |
| 审核项目缺少哪些必需工作流 | 管理 GitHub 仓库设置或分支保护规则 |
上下文
- 工作流目录:!
find . -maxdepth 1 -type d -name \'.github/workflows\' - 工作流文件:!
find . -path '*/.github/workflows/*' -maxdepth 3 \( -name '*.yml' -o -name '*.yaml' \) - Package 文件:!
find . -maxdepth 1 \( -name 'package.json' -o -name 'pyproject.toml' -o -name 'Cargo.toml' -o -name 'go.mod' \) - Dockerfile:!
find . -maxdepth 1 -name 'Dockerfile*' - Release-please 配置:!
find . -maxdepth 1 -name \'release-please-config.json\'
引用的技能:ci-workflows、github-actions-auth-security
显示名称规范:每个生成或修复的工作流的 name: 都遵循 <Domain>: <Action> [<target>](加引号,因为 YAML 会将 : 视为键分隔符)。完整规则和有效领域请参阅 .claude/rules/workflow-naming.md。
参数
从命令参数中解析:
--check-only:报告状态,不提供修复方案--fix:自动应用修复
执行
执行此 GitHub Actions 工作流配置检查:
步骤 1:获取最新的操作版本
在报告操作版本过时之前,先验证最新版本:
actions/checkout- 发布版本actions/setup-node- 发布版本actions/cache- 发布版本docker/setup-buildx-action- 发布版本docker/build-push-action- 发布版本docker/login-action- 发布版本docker/metadata-action- 发布版本reproducible-containers/buildkit-cache-dance- 发布版本google-github-actions/release-please-action- 发布版本
使用 WebSearch 或 WebFetch 验证当前版本。
步骤 2:检测项目类型并列出工作流
- 检查是否存在
.github/workflows/目录 - 列出所有工作流文件(.yml、.yaml)
- 按用途对工作流分类(容器构建、测试、发布)
根据项目类型确定必需的工作流:
| 项目类型 | 必需的工作流 |
|---|---|
| 前端 | container-build、release-please、renovate(可选:claude-auto-fix) |
| Python | container-build、release-please、test、renovate(可选:claude-auto-fix) |
| 基础设施 | release-please、renovate(可选:docs、claude-auto-fix) |
步骤 3:分析工作流合规性
容器构建工作流检查:
| 检查项 | 标准 | 严重性 |
|---|---|---|
| checkout 操作 | v6 | 低于此版本时警告 |
| build-push 操作 | v7 | 低于此版本时警告 |
| 多平台 | amd64 + arm64 | 缺少时警告 |
| 注册表 | GHCR (ghcr.io) | 信息 |
| 缓存 | 启用 GHA 缓存 | 缺少时警告 |
| 权限 | 显式声明 | 缺少时警告 |
id-token: write | 启用 provenance/SBOM 时必需 | 缺少时警告 |
| 缓存范围 | 存在多个构建作业时显式设置 scope= | 缺少时警告 |
| 无效的元数据标签 | 没有 schedule 触发器时,不应使用 type=schedule | 信息 |
| Semver 正则转义 | type=match 模式中的点应转义(\d+\.\d+) | 未转义时警告 |
| 硬编码的镜像名称 | 从 ${{ github.repository }} 推导 | 硬编码时提示信息 |
| 摘要输出 | 通过 id: 捕获 build-push 摘要,以便追踪 | 缺少时提示信息 |
| 作业摘要 | 将镜像/摘要/标签写入 $GITHUB_STEP_SUMMARY | 缺少时提示信息 |
| 重复的作业条件 | 同级作业的 if: 相同;建议使用门控作业 | 提示信息 |
Release Please 工作流检查:
| 检查项 | 标准 | 严重性 |
|---|---|---|
| 操作版本 | v4 | 低于此版本时警告 |
| Token | MY_RELEASE_PLEASE_TOKEN | 使用 GITHUB_TOKEN 时警告 |
| 权限 | contents: write, pull-requests: write | 缺少时失败 |
测试工作流检查:
| 检查项 | 标准 | 严重性 |
|---|---|---|
| Node 版本 | 22 | 低于此版本时警告 |
| Lint | npm run lint | 缺少时警告 |
| 类型检查 | npm run typecheck | 缺少时警告 |
| 覆盖率 | 上传覆盖率数据 | 信息 |
Renovate 工作流检查:
| 检查项 | 标准 | 严重性 |
|---|---|---|
| RENOVATE_REPOSITORIES 环境变量 | 必须设置(${{ github.repository }}) | 缺少时失败 |
| checkout 操作 | v6 | 低于此版本时警告 |
| renovatebot/github-action | 固定到次版本(例如 v46.1.0),而非主版本标签 | 仅使用主版本标签时警告 |
| 使用可复用工作流 | 首选(基础设施除外) | 使用独立工作流时提示信息 |
Claude 自动修复工作流检查(如果存在):
| 检查项 | 标准 | 严重性 |
|---|---|---|
| workflow_run 触发器 | 至少监控一个工作流 | 配置错误时警告 |
| 循环预防 | 跳过 fix(auto): 提交 | 缺少时失败 |
| 去重 | 限制未关闭的自动修复 PR 数量 | 缺少时警告 |
| Claude Code Action | anthropics/claude-code-action@v1 | 低于此版本时警告 |
| OAuth Token | CLAUDE_CODE_OAUTH_TOKEN secret | 缺少时失败 |
| 权限 | 最小必需权限集 | 权限过多时警告 |
步骤 4:生成合规性报告
打印格式化的合规性报告,展示工作流状态、各工作流的检查结果以及缺少的工作流。
如果设置了 --check-only,则在此处停止。
报告格式请参阅 REFERENCE.md。
步骤 5:应用配置(如果使用 --fix 或用户确认)
- 缺少的工作流:使用标准模板创建
- 过时的操作:更新版本号
- 缺少多平台支持:向 build-push 添加平台
- 缺少缓存:添加 GHA 缓存配置
标准模板(容器构建、测试工作流)请参阅 REFERENCE.md。
步骤 6:更新标准跟踪记录
更新 .project-standards.yaml:
components:
workflows: "2025.1"
Agentic 优化
| 使用场景 | 命令 |
|---|---|
| 快速合规性检查 | /configure:workflows --check-only |
| 自动修复所有问题 | /configure:workflows --fix |
| 列出工作流文件 | find .github/workflows -name '*.yml' -o -name '*.yaml' |
| 检查操作版本 | rg 'uses:' .github/workflows/ --no-heading |
| 验证 release-please 配置 | test -f release-please-config.json && echo "EXISTS" |
标志
| 标志 | 描述 |
|---|---|
--check-only | 报告状态,不提供修复方案 |
--fix | 自动应用修复 |
另请参阅
/configure:container- 全面的容器基础设施(构建、注册表、扫描)/configure:dockerfile- Dockerfile 配置和安全性/configure:release-please- 发布自动化详情/configure:all- 运行所有合规性检查ci-workflows技能 - 工作流模式github-actions-inspection技能 - 工作流调试
评论
支持 Markdown