Zum Inhalt springen

Exit-Codes der CodeCharter-CLI und ihre Bedeutung

Was die CLI als Exit-Code liefert und was die Werte bedeuten.

Die folgende Tabelle gilt für codecharter analyze. Andere Befehle verwenden dieselben Nummern mit anderer Bedeutung (zum Beispiel liefert codecharter test Exit-Code 1 bei fehlgeschlagenen Spec-Fällen und codecharter verify Exit-Code 1 bei erkanntem Drift). Exit-Code 6 (Lizenzfehler) gilt für jeden lizenzpflichtigen Befehl.

codecharter login, codecharter logout und codecharter auth status sind nicht lizenzpflichtig und liefern nie 6. login endet mit 0 bei einer abgeschlossenen Anmeldung und mit 1, wenn sie abgelehnt wurde, abgelaufen ist oder die Credentials nicht gespeichert werden konnten; logout und auth status enden immer mit 0. Siehe Browser-Anmeldung.

codecharter coverage hat einen eigenen Satz: 1 unterhalb der Schwelle, 2 fehlgeschlagene oder unvollständige Tests, 3 keine Coverage-Daten, 64 Fehler in Aufruf oder Umgebung. Vollständig aufgeführt sind sie unter codecharter coverage.

codecharter graph verwendet einen eigenen, kleineren Satz: 2 für einen Aufruffehler (einschließlich eines nicht aufgelösten oder mehrdeutigen Targets) und 3 für eine fehlgeschlagene Analyse, ohne findingsbasierten Exit-Code, da es nichts zu gaten gibt. Vollständig aufgeführt unter codecharter graph.

Code Bedeutung
0 Erfolg. Keine Findings über der --fail-on-Schwelle.
1 Findings über der --fail-on-Schwelle.
2 Aufruf- oder Konfigurationsfehler (zum Beispiel ungültige Flag-Kombinationen, eine fehlende Diff-Datei, kein Regelverzeichnis, eine defekte Baseline-Datei oder ein fehlendes Lockfile bei konfigurierten Profilen).
3 Analyse konnte nicht ausgeführt werden. Entweder konnte die Solution nicht geladen werden, oder der Profil-Cache ist unvollständig und das Portal nicht erreichbar. Im zweiten Fall führen Sie codecharter update mit Internetverbindung aus.
4 Lockfile veraltet. Bei konfigurierten Plattform-Profilen weicht der Content-Hash eines Profils von dem ab, was das Portal meldet. Führen Sie codecharter update aus.
6 Lizenzfehler. Lizenzdatei fehlt, ist abgelaufen, manipuliert oder für diese CLI-Version nicht freigegeben. Siehe Lizenzdatei.
10 Konfigurationsdatei strukturell ungültig. .codecharter/config.yml oder .codecharter/config.local.yml enthält fehlerhaftes YAML oder eine ungültige Struktur. Die genaue Fehlermeldung erscheint auf stderr.
64 Ihre Lizenz deckt mehr als eine Organisation ab, und keine wurde per org: in .codecharter/config.yml oder der Umgebungsvariable CODECHARTER_ORG gewählt. Siehe Organisation in der CLI wählen. Unabhängig vom 64, das codecharter coverage bei einem Fehler in Aufruf oder Umgebung liefert.

--fail-on und Exit-Code 1

codecharter analyze MySolution.sln --fail-on error
codecharter analyze MySolution.sln --fail-on warn
codecharter analyze MySolution.sln --fail-on info
Wert Exit-Code 1 wenn
error mindestens ein error-Finding
warn mindestens ein warn- oder error-Finding
info mindestens ein Finding überhaupt

Ohne --fail-on führt jedes Finding zu Exit-Code 1. Mit --fail-on error wird nur bei Findings mit Severity error blockiert.

Beispiele in CI-Shells

GitHub Actions

- name: CodeCharter
  run: codecharter analyze MySolution.sln --fail-on error
  # Exit-Code 1 macht den Step rot, GitHub stoppt den Job.

Bash mit Exit-Codes auswerten

codecharter analyze MySolution.sln --fail-on error
code=$?
case $code in
  0) echo "ok" ;;
  1) echo "findings over threshold" ;;
  2) echo "usage or configuration error" ;;
esac