TaskBounty Check

MCP local, CLI e GitHub Action que verifica riscos de manutenção em GitHub Actions e CI sem modificar código ou fazer requisições externas por padrão.

Documentação

taskbounty-check

Uma verificação local para higiene de manutenção de GitHub Actions e CI (fixação de ações de terceiros, permissões de tokens de workflows e automação de atualizações), criada para aplicativos enviados com Lovable, Bolt, Replit, Cursor ou v0.

Local por padrão. Sem uploads. Sem telemetria. Ele lê apenas seus arquivos de workflow, na sua máquina. O caminho de código padrão não faz requisições de rede externas, grava o relatório localmente e não envia nada para lugar algum. Não há análise ou comunicação de qualquer tipo. Apenas o modo --gh-org opcional usa a rede (por meio da sua própria sessão gh).

Funciona com Cursor, Claude Code e Codex (servidor MCP local, abaixo).

Três formas de usar

1. GitHub Action — adicione uma verificação de manutenção ao CI que grava um resumo na execução (sem comentários em PRs, sem upload de código-fonte):

permissions:
  contents: read
steps:
  - uses: actions/checkout@v4
  - run: npx taskbounty-check@0.1.6 . --github-summary --no-network

Quer que uma pessoa interprete ou corrija o que a Action revela? Solicite uma revisão gratuita de segurança de lançamento. A TaskBounty não recebe acesso ao seu repositório, código-fonte ou workflows, a menos que você envie esse formulário.

2. Agente / MCP — um servidor stdio local para Cursor, Claude Code e Codex:

npx -y taskbounty-check@0.1.6 mcp

3. CLI avulsa — verifique o repositório atual localmente e grave um relatório:

npx -y taskbounty-check@0.1.6 .

Fixe uma versão (@0.1.6) na configuração commitada e no CI para reprodutibilidade. @latest é conveniente para uma execução rápida, mas uma versão fixada é a escolha reprodutível.

O resumo do job do GitHub

A Action grava um resumo de manutenção apenas com contagens na execução do workflow (categorias e próximos passos, sem nomes de arquivos, números de linha ou código-fonte do repositório). Abaixo está esse resumo exato, renderizado a partir da saída de CI deste próprio repositório:

TaskBounty check: GitHub Actions maintenance summary

Veja-o produzido ao vivo pelo job de autoverificação nas execuções de Actions deste repositório.

Prefere um passo a passo guiado? Siga o quickstart de cinco minutos com repositório real.

Saiba mais

Verificações suportadas (e limitações honestas)

Verificações (higiene de GitHub Actions + manutenção de CI):

  • Ações de terceiros fixadas em tag/branch mutável em vez de um SHA de commit
  • Permissões amplas (write-all) de tokens de workflow
  • Bloco permissions: explícito ausente
  • Presença de automação de atualizações (Dependabot/Renovate)
  • Padrões de workflow dependentes de contexto sinalizados para revisão privada (ex.: pull_request_target, injeção de script)

NÃO verifica (isso exige revisão manual): segredos expostos, autenticação/autorização, pagamentos, webhooks, comportamento em tempo de execução. É uma verificação de manutenção/higiene, não uma auditoria completa de segurança ou um teste de penetração.

O que ele faz

  • Lê apenas seus arquivos de workflow do GitHub Actions e a configuração de automação de atualizações, verifica-os no processo com um conjunto de regras determinístico (as mesmas regras do verificador público) e grava um relatório local em HTML + JSON. Ele não executa workflows, instala dependências ou roda qualquer código do repositório.

Modos

ModoComandoRede
Repositório úniconpx taskbounty-check .nenhuma
Diretório de repositóriosnpx taskbounty-check ./all-reposnenhuma
Caminhos explícitosnpx taskbounty-check --manifest repos.jsonnenhuma
Organização do GitHub (sua sessão gh)npx taskbounty-check --gh-org <org>sim, opcional

--gh-org usa sua sessão CLI gh existente para buscar os arquivos de workflow de cada repositório nesta máquina (somente leitura). Seu token do GitHub nunca é lido por esta ferramenta e nunca é enviado à TaskBounty.

O que é lido, gravado, transmitido

Execute --explain-data para imprimir isso a qualquer momento.

  • Leituras (allowlist — nada mais é aberto): <repo>/.github/workflows/*.yml|*.yaml e configuração de automação de atualizações (dependabot.yml/renovate.json*). Nunca arquivos de código-fonte, .env, segredos, chaves SSH, armazenamentos de credenciais ou qualquer coisa fora das raízes do repositório selecionado. Symlinks que escapam de uma raiz são ignorados, nunca seguidos.
  • Gravações (somente local): <out>.json (detalhe completo) e <out>.html.
  • Transmissões: nada por padrão. --share não envia nada — ele grava um arquivo sanitizado, apenas com contagens (id da verificação, rótulo, contagens de candidatos por categoria, contagem de revisão privada, versão do verificador, timestamps; nomes de repositórios apenas com --include-repo-names) para você enviar manualmente. A rede permanece desligada sob --share. Apenas --gh-org usa a rede intencionalmente.

Flags

--share · --gh-org <org> · --manifest <file> · --org-label <label> · --include-repo-names · --dry-run · --explain-data · --delete-local-report · --no-network (padrão em todos os lugares, exceto --gh-org) · --out <basename> · --version · --help

Quer ajuda para interpretar ou corrigir esses resultados?

Solicite uma revisão gratuita de segurança de lançamento de 20 minutos: https://www.task-bounty.com/ai-app-security-check/review?utm_source=npm&utm_medium=npm_readme&utm_campaign=workflow_security

A TaskBounty não recebe nada, a menos que você envie esse formulário. A verificação é executada localmente e o relatório completo permanece na sua máquina; o formulário de revisão não nos dá acesso aos seus repositórios, código-fonte, workflows ou segredos.

GitHub Code Scanning (SARIF)

Gere SARIF 2.1.0 e exiba os achados na aba Security → Code scanning do seu repositório:

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

O SARIF carrega ids de regras determinísticos (taskbounty/<rule>), níveis de severidade e referências de arquivo/linha — sem conteúdos de código-fonte, segredos ou valores de ambiente, e sem acesso à rede. Achados confirmados são emitidos como kind: fail; itens de menor confiança como kind: review.

Ajuda para interpretar resultados SARIF: https://www.task-bounty.com/ai-app-security-check/review?utm_source=github&utm_medium=sarif_docs&utm_campaign=workflow_security

Envie-o com a action oficial (exemplo completo em examples/code-scanning.yml):

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

Agente local (MCP)

Execute um servidor MCP stdio local para que Codex, Claude Code ou Cursor possam verificar e raciocinar sobre os achados no seu editor. Ele é executado localmente, faz zero requisições de rede de saída, não envia código-fonte e nunca modifica arquivosgenerate_fix_plan retorna um plano como texto para você aplicar por conta própria.

npx taskbounty-check@latest mcp

Ferramentas: scan_repo (resumo da verificação local), explain_finding (explicação em linguagem simples), generate_fix_plan (plano de correção em texto).

Quer que uma pessoa revise o plano? 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 — em ~/.codex/config.toml:

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

Segurança

Zero dependências em tempo de execução. Publicado no npm com proveniência (verifique na página do pacote no npm). A execução padrão não faz requisições de saída e não envia nada; consulte a metodologia para os limites completos de tratamento de dados e escopo.