GitHub Action
L'action n'est pas encore sur le Marketplace. En attendant, faites pointer uses vers la copie de ce dépôt.
Workflow
Le plan doit inclure la fonctionnalité api. Stockez la clé dans SCANDAR_API_KEY. L'URL du serveur est 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 }}Entrées et sorties
api-key(obligatoire) — masquée par::add-mask::avant toute autre ligne de log.api-url— URL de base du serveur Scandar. Utilisezhttps://scandar.dev.fail-on—highpar défaut.working-directory—.par défaut.repo—owner/namefacultatif pour les règles d'ignorance.annotations— true par défaut. Un::errorpar alerte en échec, sur le chemin du lockfile.comment-on-pr— un commentaire, créé ou mis à jour. Le marqueur est<!-- scandar-action -->.continue-on-error-on-api-failure— false par défaut. À true, une panne réseau ou un HTTP 429/5xx sort avec 0. Un échec de politique sort toujours avec 1.
Sorties : passed, failing-count, report. Le résumé du job est écrit dans le résumé de l'étape.
Codes de sortie
0— réussi, ou API injoignable aveccontinue-on-error-on-api-failureà true.1— une alerte a dépassé le seuil (ou un malware, ou une alerte exploitée, sauf sifail-onvautnone).2— clé manquante, URL fictive ou aucun lockfile.3— panne réseau ou API.
Forks
Une pull request venant d'un fork ne reçoit pas les secrets. L'action n'a alors pas de clé. C'est normal. Ne passez pas le workflow à pull_request_target pour contourner cela : cet événement s'exécute avec les secrets de la branche de base, dans un checkout qu'un contributeur externe peut influencer.
L'action ne lit que les noms de manifestes et de lockfiles. Elle n'installe pas les dépendances et n'exécute aucun fichier de la pull request. Les limites sont de 40 fichiers et 15 Mo. Les scores utilisent la portée unknown. Les explications restent désactivées : l'action n'envoie jamais explain=1.
Les autres systèmes de CI peuvent utiliser le CLI ou l'exemple curl.