GitHub Action

La acción aún no está en Marketplace. Hasta que se publique, apunta uses a la copia de este repositorio.

Workflow

El plan necesita la función api. Guarda la clave como SCANDAR_API_KEY. La URL del servidor es https://scandar.dev.

name: Scandar
on:
  pull_request:
  push:
    branches: [main]
jobs:
  check:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: ./packages/scandar-action
        # After publication: OWNER/scandar-action@v1
        with:
          api-key: ${{ secrets.SCANDAR_API_KEY }}
          api-url: https://scandar.dev
          fail-on: high
          annotations: true
          comment-on-pr: true
          github-token: ${{ github.token }}

Entradas y salidas

  • api-key (obligatoria) — enmascarada con ::add-mask:: antes de cualquier otra línea de log.
  • api-url — URL base del servidor de Scandar. Usa https://scandar.dev.
  • fail-on — high por defecto.
  • working-directory — . por defecto.
  • repo — owner/name opcional para las reglas de ignorar.
  • annotations — true por defecto. Un ::error por aviso con fallo, en la ruta del lockfile.
  • comment-on-pr — un comentario, creado o actualizado. El marcador es <!-- scandar-action -->.
  • continue-on-error-on-api-failure — false por defecto. Con true, un fallo de red o un HTTP 429/5xx sale con 0. Un fallo de política sigue saliendo con 1.

Salidas: passed, failing-count, report. El resumen del job se escribe en el resumen del paso.

Códigos de salida

  • 0 — correcto, o API inalcanzable con continue-on-error-on-api-failure en true.
  • 1 — un aviso superó el umbral (o malware, o un aviso explotado, salvo que fail-on sea none).
  • 2 — falta la clave, URL de ejemplo o sin lockfile.
  • 3 — fallo de red o de la API.

Forks

Una pull request desde un fork no recibe secretos. La acción no tiene entonces clave. Es lo esperado. No cambies el workflow a pull_request_target para evitarlo: ese evento se ejecuta con los secretos de la rama base en un checkout en el que puede influir un colaborador externo.

La acción solo lee nombres de manifiestos y lockfiles. No instala dependencias ni ejecuta archivos de la pull request. Los límites son 40 archivos y 15 MB. Las puntuaciones usan el alcance unknown. Las explicaciones siguen desactivadas: la acción nunca envía explain=1.

Otros sistemas de CI pueden ejecutar la CLI o el ejemplo con curl.