GitHub Action

L'action non è ancora sul Marketplace. Finché non viene pubblicata, punta uses alla copia in questo repository.

Workflow

Il piano deve includere la funzionalità api. Salva la chiave come SCANDAR_API_KEY. L'URL del server è 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 }}

Input e output

  • api-key (obbligatoria) — mascherata con ::add-mask:: prima di ogni altra riga di log.
  • api-url — URL di base del server Scandar. Usa https://scandar.dev.
  • fail-on — predefinito high.
  • working-directory — predefinito ..
  • repo — owner/name facoltativo per le regole di esclusione.
  • annotations — predefinito true. Un ::error per ogni avviso fallito, sul percorso del lockfile.
  • comment-on-pr — un commento, creato o aggiornato. Il marcatore è <!-- scandar-action -->.
  • continue-on-error-on-api-failure — predefinito false. Con true, un errore di rete o un HTTP 429/5xx esce con 0. Un errore di policy esce comunque con 1.

Output: passed, failing-count, report. Il riepilogo del job viene scritto nel riepilogo dello step.

Codici di uscita

  • 0 — superato, oppure API irraggiungibile con continue-on-error-on-api-failure a true.
  • 1 — un avviso ha superato la soglia (o malware, o un avviso sfruttato, salvo che fail-on sia none).
  • 2 — chiave mancante, URL segnaposto o nessun lockfile.
  • 3 — errore di rete o dell'API.

Fork

Una pull request da un fork non riceve i secret. L'action non ha quindi una chiave. È previsto. Non passare il workflow a pull_request_target per aggirarlo: quell'evento gira con i secret del branch base in un checkout che un collaboratore esterno può influenzare.

L'action legge solo i nomi di manifest e lockfile. Non installa dipendenze e non esegue file della pull request. I limiti sono 40 file e 15 MB. I punteggi usano la portata unknown. Le spiegazioni restano disattivate: l'action non invia mai explain=1.

Altri sistemi CI possono eseguire la CLI o l'esempio curl.