mcpField
P
prowler-ci

prowler-ci

github.com/prowler-cloud云与 DevOps15.1k70 次安装今天更新
代码仓库

关于 prowler-ci

prowler-ci 是面向 Prowler 贡献者的技能,用于排查拉取请求检查并理解 GitHub Actions 策略。它将工作流对应到文件,并为路径筛选、变更日志门禁、冲突标记和密钥扫描等常见失败提供检查清单。

主要功能

  1. 01GitHub Actions 工作流索引
  2. 02拉取请求检查排查
  3. 03路径筛选行为说明
  4. 04变更日志与标题策略检查
  5. 05TruffleHog 误报处理指引

适用场景

  1. 01查明 UI、API 或 SDK 变更为何未触发工作流
  2. 02解决拉取请求标题或变更日志检查失败
  3. 03排查冲突标记或密钥扫描失败

安装

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

$npx skills add https://github.com/prowler-cloud/prowler --skill prowler-ci

安装后在 Claude Code 中输入/prowler-ci确认已加载。

详细介绍

此技能涵盖的内容

遇到以下情况时,请使用此技能:

  • 阅读或修改 .github/workflows/ 下的 GitHub Actions 工作流
  • 解释 PR 检查失败的原因(标题、变更日志、冲突标记、密钥扫描)
  • 确定哪些工作流会针对 UI/API/SDK 变更运行,以及原因
  • 诊断路径筛选行为(工作流为何运行或未运行)

快速索引(查看位置)

  • PR 模板:.github/pull_request_template.md
  • PR 标题验证:.github/workflows/conventional-commit.yml
  • 变更日志检查:.github/workflows/pr-check-changelog.yml(要求在 <component>/changelog.d/ 下提供片段)
  • 变更日志编译(发布时):.github/workflows/compile-changelogs.yml
  • 冲突标记检查:.github/workflows/pr-conflict-checker.yml
  • 密钥扫描:.github/workflows/find-secrets.yml
  • 自动添加标签:.github/workflows/labeler.yml 和 .github/labeler.yml
  • 代码审查负责人:.github/CODEOWNERS

调试检查清单(PR 检查失败)

  1. 确认失败的工作流/任务(名称及 .github/workflows/ 下的文件)。
  2. 检查路径筛选器:工作流是否应该针对你修改的文件运行?
  3. 如果是标题检查:确认 PR 标题符合 Conventional Commits 规范。
  4. 如果是变更日志检查:确认对应的 <component>/changelog.d/ 下存在有效片段,或者添加 no-changelog 标签。
  5. 如果是冲突检查器:移除 <<<<<<<、=======、>>>>>>> 标记。
  6. 如果是密钥检查(TruffleHog):请参阅下文。

TruffleHog 密钥扫描

TruffleHog 会扫描泄露的密钥。测试文件中常见的误报包括:

会触发 TruffleHog 的模式:

  • sk-*T3BlbkFJ* - OpenAI API 密钥
  • AKIA[A-Z0-9]{16} - AWS 访问密钥
  • ghp_* / gho_* - GitHub 令牌
  • 看起来像凭据的 Base64 编码字符串

测试文件的修复方法:

# BAD - looks like real OpenAI key
api_key = "sk-test1234567890T3BlbkFJtest1234567890"

# GOOD - obviously fake
api_key = "sk-fake-test-key-for-unit-testing-only"

如果 TruffleHog 检测到真实密钥:

  1. 立即从代码中移除该密钥
  2. 轮换凭据(它现在已存在于 git 历史记录中)
  3. 可以考虑对已知误报使用 .trufflehog-ignore(很少需要)

注意事项

  • 让 prowler-pr 专注于创建 PR 和填写模板。
  • 使用 prowler-ci 处理适用于 PR 的 CI 策略和门禁。

评论

支持 Markdown