mcpField
C
configure-workflows

configure-workflows

github.com/laurigates云与 DevOps5958 次安装1 天前更新
代码仓库

关于 configure-workflows

configure-workflows 用于按项目标准检查和配置 GitHub Actions 工作流,可报告缺失或过时的配置,并按要求修复。

主要功能

  1. 01检查工作流合规性
  2. 02识别缺失的工作流
  3. 03核对 Action 版本
  4. 04使用 --fix 修复工作流

适用场景

  1. 01审计项目的 CI/CD 工作流
  2. 02更新过时的 GitHub Actions
  3. 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:获取最新的操作版本

在报告操作版本过时之前,先验证最新版本:

  1. actions/checkout - 发布版本
  2. actions/setup-node - 发布版本
  3. actions/cache - 发布版本
  4. docker/setup-buildx-action - 发布版本
  5. docker/build-push-action - 发布版本
  6. docker/login-action - 发布版本
  7. docker/metadata-action - 发布版本
  8. reproducible-containers/buildkit-cache-dance - 发布版本
  9. google-github-actions/release-please-action - 发布版本

使用 WebSearch 或 WebFetch 验证当前版本。

步骤 2:检测项目类型并列出工作流
  1. 检查是否存在 .github/workflows/ 目录
  2. 列出所有工作流文件(.yml、.yaml)
  3. 按用途对工作流分类(容器构建、测试、发布)

根据项目类型确定必需的工作流:

项目类型必需的工作流
前端container-build、release-please、renovate(可选:claude-auto-fix)
Pythoncontainer-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低于此版本时警告
TokenMY_RELEASE_PLEASE_TOKEN使用 GITHUB_TOKEN 时警告
权限contents: write, pull-requests: write缺少时失败

测试工作流检查:

检查项标准严重性
Node 版本22低于此版本时警告
Lintnpm 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 Actionanthropics/claude-code-action@v1低于此版本时警告
OAuth TokenCLAUDE_CODE_OAUTH_TOKEN secret缺少时失败
权限最小必需权限集权限过多时警告
步骤 4:生成合规性报告

打印格式化的合规性报告,展示工作流状态、各工作流的检查结果以及缺少的工作流。

如果设置了 --check-only,则在此处停止。

报告格式请参阅 REFERENCE.md。

步骤 5:应用配置(如果使用 --fix 或用户确认)
  1. 缺少的工作流:使用标准模板创建
  2. 过时的操作:更新版本号
  3. 缺少多平台支持:向 build-push 添加平台
  4. 缺少缓存:添加 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