mcpField
T
taskbounty-check

taskbounty-check

本地服务
github.com/eliottreich安全219 周前更新

关于 taskbounty-check

taskbounty-check 扫描 GitHub Actions 和 CI 配置中的维护规范问题,适用于维护应用仓库的开发者和团队。默认在本地运行并生成 HTML 与 JSON 报告;它不检查应用代码,也不是完整安全审计。

主要功能

  1. 01检查 Action 固定版本和工作流令牌权限
  2. 02检测权限声明缺失及更新自动化
  3. 03在本地扫描工作流和更新配置
  4. 04生成 HTML 和 JSON 报告
  5. 05生成供代码扫描使用的 SARIF

适用场景

  1. 01检查仓库的 GitHub Actions 配置
  2. 02批量检查多个仓库的 CI 规范
  3. 03在 GitHub Actions 运行记录中添加维护摘要
  4. 04通过编辑器 Agent 查看扫描结果

MCP 相关

其本地 stdio MCP 服务提供 scan_repo、explain_finding 和 generate_fix_plan。服务在本地扫描,不发起出站请求,也不修改文件。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"eliottreich-taskbounty-check": {
"command": "npx",
"args": [
"-y",
"taskbounty-check"
]
}
}
}
启动命令npx -y taskbounty-check

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmtaskbounty-check0.1.6

工具

3

收录的工具列表 · 更新于 2 周前

参数类型必填说明
pathstring否仓库或仓库目录的本地路径。默认为当前目录。

详细介绍

taskbounty-check

用于检查 GitHub Actions 和 CI 维护规范的本地工具(第三方 Action 固定、工作流令牌权限和更新自动化),适用于使用 Lovable、Bolt、Replit、Cursor 或 v0 发布的应用。

默认在本地运行。不上传。不进行遥测。 它只会读取本机上的工作流文件。默认代码路径不会发起任何出站网络请求,会在本地生成报告,也不会将任何内容发送到其他地方。它不会进行任何形式的分析或回传。只有选择启用的 --gh-org 模式会使用网络(通过你自己的 gh 会话)。

适用于 Cursor、Claude Code 和 Codex(下文提供本地 MCP 服务)。

三种使用方式

1. GitHub Action — 在 CI 中添加维护检查,并将摘要写入运行记录(不会发表评论,也不会上传源代码):

permissions:
  contents: read
steps:
  - uses: actions/checkout@v4
  - run: npx [email protected] . --github-summary --no-network

想让真人解读或修复 Action 检查出的内容?申请免费的发布安全审查。除非你提交该表单,否则 TaskBounty 不会访问你的代码仓库、源代码或工作流。

2. Agent / MCP — 适用于 Cursor、Claude Code 和 Codex 的本地 stdio 服务:

npx -y [email protected] mcp

3. 一次性 CLI — 在本地扫描当前代码仓库并生成报告:

npx -y [email protected] .

在已提交的配置和 CI 中固定版本(@0.1.6),以确保可复现。@latest 适合快速的一次性使用,但固定版本才是可复现的选择。

GitHub 作业摘要

该 Action 会在工作流运行记录中写入仅包含计数的维护摘要(类别和后续步骤,不包含文件名、行号或代码仓库源代码)。以下是从本代码仓库自己的 CI 输出中生成的原样摘要:

TaskBounty 检查:GitHub Actions 维护摘要

可在此代码仓库的 Actions 运行记录中查看 self-check 作业实时生成的摘要。

想要跟随引导逐步操作?请参阅五分钟真实代码仓库快速入门。

了解更多
  • 方法说明 — 具体检查内容及发现的标记方式。
  • 隐私与范围 — 默认在本地处理数据。
  • 限制 — 它不会检查的内容(见下文)。

支持的检查(及坦诚说明的限制)

检查内容(GitHub Actions 和 CI 维护规范):

  • 第三方 Action 固定到可变标签或分支,而非提交 SHA
  • 宽泛的(全部可写)工作流令牌权限
  • 缺少明确的 permissions: 块
  • 是否存在更新自动化工具(Dependabot/Renovate)
  • 标记需要私下审查、视上下文而定的工作流模式(例如 pull_request_target、脚本注入)

不会检查的内容(这些需要人工审查):暴露的密钥、身份验证/授权、支付、Webhook、运行时行为。这是一项维护规范检查,不是完整的安全审计或渗透测试。

功能

  • 只读取 GitHub Actions 工作流文件和更新自动化配置,在进程内使用确定性规则集进行扫描(规则与公开检查器相同),并生成本地 HTML + JSON 报告。它不会执行工作流、安装依赖项或运行任何代码仓库代码。

模式

模式命令网络
单个代码仓库npx taskbounty-check .无
代码仓库目录npx taskbounty-check ./all-repos无
指定路径npx taskbounty-check --manifest repos.json无
GitHub 组织(使用你的 gh 会话)npx taskbounty-check --gh-org <org>是,需主动选择

--gh-org 会使用你现有的 gh CLI 会话,将每个代码仓库的工作流文件获取到本机(只读)。此工具不会读取你的 GitHub 令牌,也不会将令牌发送给 TaskBounty。

读取、写入和传输的内容

随时运行 --explain-data 来打印此信息。

  • 读取(允许列表——不会打开其他内容): <repo>/.github/workflows/*.yml|*.yaml 和 更新自动化配置(dependabot.yml/renovate.json*)。绝不读取源文件、.env、 密钥、SSH 密钥、凭据存储,或所选仓库根目录之外的任何内容。 如果符号链接指向根目录之外,则会跳过,绝不跟随。
  • 写入(仅本地): <out>.json(完整详情)和 <out>.html。
  • 传输: 默认不传输任何内容。--share 不会上传任何内容——它会写入一个已清理、 仅包含计数的文件(扫描 ID、标签、按类别统计的候选项数量、私密审查数量、 扫描器版本、时间戳;只有使用 --include-repo-names 时才包含仓库名称),供你 手动提交。使用 --share 时,网络访问保持关闭。只有 --gh-org 会主动使用网络。

标志

--share · --gh-org <org> · --manifest <file> · --org-label <label> · --include-repo-names · --dry-run · --explain-data · --delete-local-report · --no-network(除 --gh-org 外均为默认值)· --out <basename> · --version · --help

需要帮助解读或修复这些结果?

申请免费的 20 分钟发布安全审查: https://www.task-bounty.com/ai-app-security-check/review?utm_source=npm&utm_medium=npm_readme&utm_campaign=workflow_security

除非你提交该表单,否则 TaskBounty 不会收到任何内容。 扫描在本地运行,完整 报告保留在你的计算机上;审查表单不会让我们访问你的仓库、源代码、 工作流或密钥。

GitHub 代码扫描(SARIF)

生成 SARIF 2.1.0,并在仓库的 Security → Code scanning 选项卡中显示发现结果:

npx taskbounty-check@latest . --format sarif --output taskbounty.sarif

SARIF 包含确定性的规则 ID(taskbounty/<rule>)、严重级别和文件/行 引用——不包含源代码内容、密钥或环境变量值,且不会访问网络。 已确认的发现会以 kind: fail 输出;置信度较低的项目会以 kind: review 输出。

SARIF 结果解读帮助:https://www.task-bounty.com/ai-app-security-check/review?utm_source=github&utm_medium=sarif_docs&utm_campaign=workflow_security

使用官方操作上传(完整示例见 examples/code-scanning.yml):

permissions:
  contents: read
  security-events: write
steps:
  - uses: actions/checkout@v4
  - run: npx [email protected] . --format sarif --output taskbounty.sarif
  - uses: github/codeql-action/upload-sarif@v3
    with:
      sarif_file: taskbounty.sarif

本地 Agent(MCP)

运行一个本地 stdio MCP 服务,让 Codex、Claude Code 或 Cursor 能在你的编辑器中扫描并分析发现结果。它在本地运行,不会发出任何出站网络请求,不会上传源代码,且绝不会修改文件——generate_fix_plan 会以文本形式返回计划,供你自行应用。

npx taskbounty-check@latest mcp

工具:scan_repo(本地扫描摘要)、explain_finding(通俗易懂的说明)、generate_fix_plan(文本修复计划)。

需要人工审查计划?https://www.task-bounty.com/ai-app-security-check/review?utm_source=mcp&utm_medium=mcp_docs&utm_campaign=workflow_security

Cursor——.cursor/mcp.json:

{ "mcpServers": { "taskbounty-check": { "command": "npx", "args": ["-y", "taskbounty-check@latest", "mcp"] } } }

Claude Code:

claude mcp add taskbounty-check -- npx -y taskbounty-check@latest mcp

Codex——位于 ~/.codex/config.toml 中:

[mcp_servers.taskbounty-check]
command = "npx"
args = ["-y", "taskbounty-check@latest", "mcp"]

安全性

零运行时依赖。发布到 npm 时附带来源证明(可在软件包的 npm 页面上验证)。默认运行不会发出任何出站请求,也不会上传任何内容;完整的数据处理方式和范围边界请参见 方法说明。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。