TaskBounty Check

MCP local, CLI y Acción de GitHub que verifica riesgos de mantenimiento de GitHub Actions y CI sin modificar código ni realizar solicitudes salientes por defecto.

Documentación

taskbounty-check

Una verificación local para el mantenimiento e higiene de GitHub Actions y CI (fijación de acciones de terceros, permisos de tokens de flujos de trabajo y automatización de actualizaciones), creada para aplicaciones publicadas con Lovable, Bolt, Replit, Cursor o v0.

Local por defecto. Sin cargas. Sin telemetría. Solo lee tus archivos de flujo de trabajo, en tu máquina. La ruta de código predeterminada no realiza solicitudes de red salientes, escribe su informe localmente y no envía nada a ningún lugar. No hay análisis ni comunicación con el hogar de ningún tipo. Solo el modo opt-in --gh-org usa la red (a través de tu propia sesión de gh).

Funciona con Cursor, Claude Code y Codex (servidor MCP local, abajo).

Tres formas de usarlo

1. GitHub Action — agrega una verificación de mantenimiento a CI que escribe un resumen en la ejecución (sin comentarios en PR, sin carga de código fuente):

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

¿Quieres que un humano interprete o corrija lo que la Action detecta? Solicita una revisión gratuita de seguridad de lanzamiento. TaskBounty no obtiene acceso a tu repositorio, código fuente o flujos de trabajo a menos que envíes ese formulario.

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

npx -y taskbounty-check@0.1.6 mcp

3. CLI de una sola vez — escanea el repositorio actual localmente y escribe un informe:

npx -y taskbounty-check@0.1.6 .

Fija una versión (@0.1.6) en la configuración confirmada y en CI para reproducibilidad. @latest es conveniente para una ejecución rápida, pero una versión fijada es la opción reproducible.

El resumen del trabajo de GitHub

La Action escribe un resumen de mantenimiento solo con conteos en la ejecución del flujo de trabajo (categorías y próximos pasos, sin nombres de archivos, números de línea ni código fuente del repositorio). A continuación se muestra ese resumen exacto, renderizado desde la salida de CI de este propio repositorio:

TaskBounty check: GitHub Actions maintenance summary

Míralo producido en vivo por el trabajo de autoverificación en las ejecuciones de Actions de este repositorio.

¿Prefieres un recorrido guiado? Sigue el inicio rápido de cinco minutos con un repositorio real.

Aprende más

Verificaciones compatibles (y limitaciones honestas)

Verificaciones (mantenimiento e higiene de GitHub Actions + CI):

  • Acciones de terceros fijadas a una etiqueta/rama móvil en lugar de un SHA de commit
  • Permisos amplios (write-all) de tokens de flujos de trabajo
  • Bloque explícito de permissions: faltante
  • Presencia de automatización de actualizaciones (Dependabot/Renovate)
  • Patrones de flujo de trabajo dependientes del contexto marcados para revisión privada (p. ej., pull_request_target, inyección de scripts)

NO verifica (esto requiere revisión manual): secretos expuestos, autenticación/autorización, pagos, webhooks, comportamiento en tiempo de ejecución. Es una verificación de mantenimiento/higiene, no una auditoría de seguridad completa ni una prueba de penetración.

Qué hace

  • Lee solo tus archivos de flujo de trabajo de GitHub Actions y la configuración de automatización de actualizaciones, los escanea en proceso con un conjunto de reglas determinista (las mismas reglas que el verificador público) y escribe un informe local en HTML + JSON. No ejecuta flujos de trabajo, instala dependencias ni ejecuta ningún código del repositorio.

Modos

ModoComandoRed
Repositorio úniconpx taskbounty-check .ninguna
Directorio de repositoriosnpx taskbounty-check ./all-reposninguna
Rutas explícitasnpx taskbounty-check --manifest repos.jsonninguna
Organización de GitHub (tu sesión de gh)npx taskbounty-check --gh-org <org>sí, opt-in

--gh-org usa tu sesión existente de CLI de gh para obtener los archivos de flujo de trabajo de cada repositorio a esta máquina (solo lectura). Tu token de GitHub nunca es leído por esta herramienta ni enviado a TaskBounty.

Qué se lee, escribe y transmite

Ejecuta --explain-data para imprimir esto en cualquier momento.

  • Lee (lista blanca — nada más se abre): <repo>/.github/workflows/*.yml|*.yaml y configuración de automatización de actualizaciones (dependabot.yml/renovate.json*). Nunca archivos fuente, .env, secretos, claves SSH, almacenes de credenciales ni nada fuera de las raíces del repositorio seleccionado. Los enlaces simbólicos que escapan de una raíz se omiten, nunca se siguen.
  • Escribe (solo local): <out>.json (detalle completo) y <out>.html.
  • Transmite: nada por defecto. --share no carga nada — escribe un archivo saneado, solo con conteos (id de escaneo, etiqueta, conteos de candidatos por categoría, conteo de revisión privada, versión del escáner, marcas de tiempo; nombres de repositorios solo con --include-repo-names) para que lo envíes manualmente. La red permanece apagada bajo --share. Solo --gh-org usa la red intencionalmente.

Banderas

--share · --gh-org <org> · --manifest <file> · --org-label <label> · --include-repo-names · --dry-run · --explain-data · --delete-local-report · --no-network (predeterminado en todos lados excepto --gh-org) · --out <basename> · --version · --help

¿Necesitas ayuda para interpretar o corregir estos resultados?

Solicita una revisión gratuita de seguridad de lanzamiento de 20 minutos: https://www.task-bounty.com/ai-app-security-check/review?utm_source=npm&utm_medium=npm_readme&utm_campaign=workflow_security

TaskBounty no recibe nada a menos que envíes ese formulario. El escaneo se ejecuta localmente y el informe completo permanece en tu máquina; el formulario de revisión no nos da acceso a tus repositorios, código fuente, flujos de trabajo ni secretos.

GitHub Code Scanning (SARIF)

Emite SARIF 2.1.0 y muestra los hallazgos en la pestaña Security → Code scanning de tu repositorio:

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

El SARIF lleva identificadores de reglas deterministas (taskbounty/<rule>), niveles de severidad y referencias de archivo/línea — sin contenidos de código fuente, secretos ni valores de entorno, y sin acceso a la red. Los hallazgos confirmados se emiten como kind: fail; los elementos de menor confianza como kind: review.

Ayuda 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

Súbelo con la acción oficial (ejemplo completo en 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)

Ejecuta un servidor MCP stdio local para que Codex, Claude Code o Cursor puedan escanear y razonar sobre los hallazgos en tu editor. Se ejecuta localmente, hace cero solicitudes de red salientes, no carga código fuente y nunca modifica archivos — generate_fix_plan devuelve un plan como texto para que lo apliques tú mismo.

npx taskbounty-check@latest mcp

Herramientas: scan_repo (resumen de escaneo local), explain_finding (explicación en lenguaje sencillo), generate_fix_plan (plan de corrección en texto).

¿Quieres que un humano revise el 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 — en ~/.codex/config.toml:

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

Seguridad

Cero dependencias en tiempo de ejecución. Publicado en npm con procedencia (verifica en la página npm del paquete). La ejecución predeterminada no hace solicitudes salientes y no carga nada; consulta la metodología para conocer los límites completos de manejo de datos y alcance.