Voraussetzungen und Exitcodes
Sie benötigen Node.js ab 20.9.0, eine installierte CLI, Zugangsdaten aus einem Secretmanager, die erforderliche Abonnementberechtigung und einen vertrauenswürdigen Checkout. Analysen können Code an Dienste übertragen und Kosten verursachen. Schreiben Sie keine echten API-Schlüssel in YAML oder Logs.
| Exit | Bedeutung |
|---|---|
| 0 | Keine Findings am oder oberhalb des Schwellenwerts, sofern sie nicht als falsch positiv eingestuft sind. |
| 1 | Blockierende Findings oder eine fehlende beziehungsweise fehlgeschlagene vorgelagerte Berechtigungsprüfung. |
| 2 | Ausnahme während der Analyse, Reporterstellung, Dateiausgabe oder GitHub-Ausgabe. |
| 3 | Guthaben erschöpft; Teilreport möglich, erst nach Report-/PR-/Uploadversuchen gesetzt. |
Die Schweregrade sind critical, high, medium, low und info. --fail-on ist standardmäßig high; ungültige Schweregrade fallen auf high zurück, auch beim Kommentarminimum. Unbekannte Ausgabeformate fallen auf JSON zurück. Exitcode 0 ist kein Beweis für vollständige Sicherheit.
Alle Security-CI-Flags
Achtung: Reports können vorhandene Zieldateien überschreiben. Prüfen Sie den Ausgabepfad vor der Ausführung.
lurus security-ci --diff --fail-on high --format sarif --output lurus-security-results.sarif --no-upload
| Flag | Default / Wirkung |
|---|---|
-m, --model <model> | Optionale öffentliche Auswahl. |
-f, --format <format> | sarif, json, html oder text; standardmäßig sarif. |
-o, --output <path> | lurus-security-results.sarif, Reportdatei/ggf Ordner. |
--fail-on <severity> | high. |
--diff | Diff statt gesamtes Projekt. |
--diff-base <ref> | Git-Vergleichsreferenz; die Hilfe nennt HEAD, nicht pauschal origin/main. |
--no-upload | Unterbindet den standardmäßig aktivierten Befundupload. |
--pr-comments | Optionale GitHub-PR-Kommentare. |
--comment-min-severity <severity> | medium. |
Der Upload enthält bei vorhandenen Findings den Projektnamen, die Findings und die Zusammenfassung. --no-upload verhindert nicht Modellanfragen, Reports, GitHub-Zusammenfassungen oder ausdrücklich angeforderte PR-Aktionen. Die Option ermöglicht keinen vollständigen Offlinebetrieb.
Alle Code-Review-CI-Flags
lurus code-review-ci --staged --fail-on high --format json --output lurus-code-review-results.json
| Flag | Default / Wirkung |
|---|---|
-m, --model <model> | Optionale öffentliche Auswahl. |
-f, --format <format> | json, html oder text; standardmäßig json. |
-o, --output <path> | lurus-code-review-results.json. |
--fail-on <severity> | high. |
--full | Vollprojekt statt default Gitdiff. |
--staged | Nur staged Änderungen. |
--diff-base <ref> | Gitbasis. |
--pr-comments | Optionale Inline-Review-Kommentare. |
--verdict | Optionale PRreview APPROVE/REQUEST_CHANGES. |
--comment-min-severity <severity> | medium. |
Als falsch positiv eingestufte Findings führen nicht zum Überschreiten der Fehlerschwelle. Unterscheiden Sie Guthaben- und Ausführungsfehler von Reviewbefunden.
GitHub Actions
Passen Sie dieses manuell gestartete Beispiel an Ihre CI-Umgebung an. Hinterlegen Sie Secrets über deren geschützte Verwaltung und fixieren Sie Actionrevisionen gemäß Ihren Lieferkettenregeln. Führen Sie nicht vertrauenswürdigen Forkcode niemals automatisch mit Secrets, Schreibrechten oder ausführbarer Projektkonfiguration aus.
name: Lurus review
on: [workflow_dispatch]
permissions:
contents: read
jobs:
review:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/setup-node@v4
with:
node-version: '22'
- run: npm install -g @scramble-cloud/lurus-code-cli
- run: lurus security-ci --format sarif --no-upload
env:
LURUS_API_KEY: ${{ secrets.LURUS_API_KEY }}
Bei GITHUB_ACTIONS=true werden Zusammenfassung und Ausgabewerte ergänzt. Securityjobs liefern total_findings, blocking_findings und passed. Ausdrücklich aktivierte PR-Kommentare benötigen GITHUB_TOKEN, GITHUB_EVENT_PATH und passende PR- und Repositorydaten. Fehlen Voraussetzungen, werden Kommentare übersprungen; Fehler werden protokolliert. Eine Reviewentscheidung benötigt zusätzlich --verdict, passenden GitHub-Kontext und ein entsprechendes Analyseergebnis.
PR-Kommentare und Reviewentscheidungen sind extern sichtbar. Aktivieren Sie sie bewusst und erteilen Sie nur erforderliche Schreibrechte. Verwenden Sie weder gefährliche Freigabemodi noch automatische Zustimmung als pauschalen Standard.
GitLab CI
Beispiel für einen manuell gestarteten Job:
lurus-review:
image: node:22
when: manual
variables:
GIT_DEPTH: '0'
script:
- npm install -g @scramble-cloud/lurus-code-cli
- lurus code-review-ci --format json --output lurus-code-review-results.json
artifacts:
when: always
paths:
- lurus-code-review-results.json
Hinterlegen Sie LURUS_API_KEY geschützt und maskiert in der CI-Secretverwaltung, nicht im YAML. Verwenden Sie Reports und Exitcodes des automatisierten Laufs. GitHub-PR-Flags erzeugen keine allgemeinen GitLab-Kommentare.
Andere Runner
Jenkins, CircleCI und andere Runner können dieselben CLI-Befehle mit Node.js, geschützten Zugangsdaten aus der Umgebung und einem vorhandenen Checkout ausführen. Ein universelles Plugin wird nicht zugesichert. Sichern Sie Reports auch bei Exitcode 1 oder 3 als Artefakte und ignorieren Sie Fehlercodes nicht pauschal. Beachten Sie Ihre CI-Berechtigungen und Lieferkettenregeln.
Abnahme und Sicherheit
Prüfen Sie Analyseumfang, Vergleichsbasis, Schwellenwert, tatsächlich erzeugten Report und Exitcode. Achten Sie auf geheime Werte in Logs sowie bewusst aktivierte PR-Aktionen und Uploads. Vergleichen Sie Parameter mit der Referenz. Automation erklärt andere Ausgabeformate; Berechtigungen beschreibt nichtinteraktive Grenzen.