Skip to content

Glossar

Alle Begriffe aus dem Wiki, der CLI-Ausgabe und dem Portal, kurz erklärt.

Begriffe, die im Wiki, in der CLI-Ausgabe oder im Portal auftauchen, kurz erklärt.

API-Key

Ein langer, geheimer String, der im Portal unter API Keys erzeugt und in Ihrer CI als Secret hinterlegt wird. Authentifiziert CLI- und CI-Anfragen gegen das Portal, zum Beispiel CLI-Downloads und den Lizenzabruf. Mehr unter API-Keys verwalten.

Baseline

Ein Schnappschuss vorhandener Findings, geschrieben mit --write-baseline. Wird er über --baseline wieder übergeben, werden die erfassten Findings unterdrückt, sodass nur neue Findings gemeldet werden und den Build blockieren. Nützlich, wenn CodeCharter in eine bestehende Codebasis eingeführt wird.

Bundle

Ein signiertes ZIP-Archiv (.cgbundle) mit den Regeln eines Profils. Bundles lädt codecharter restore aus dem Portal herunter; alternativ lassen sie sich offline in .codecharter/config.yml über einen path:-Eintrag referenzieren.

Ccr-Datei

Die Dateiendung für CodeCharter-Regeln. Eine .ccr-Datei enthält Metadaten (@name, @severity, ...) und eine LINQ-Query gegen das Schema. Siehe Datei-Struktur.

Channel

Release-Channel der CodeCharter-Distributionen. Alle aktuellen Releases erscheinen im Channel Stable.

CLI

Die Standalone-Kommandozeilen-Variante von CodeCharter. Liegt als selbst-enthaltenes Binary für Windows, Linux und macOS vor, läuft ohne installierte .NET-Runtime.

CodeCharter-DSL

Die kleine LINQ-ähnliche Sprache, in der eigene Regeln geschrieben werden. Siehe DSL-Referenz.

Determinismus

CodeCharter-Eigenschaft: gleicher Source-Code und gleiche Regelmenge ergeben jedes Mal exakt die gleichen Findings, unabhängig von Rechner, Tageszeit oder Systemlast. Siehe Determinismus und Caching.

Diff-Modus

Beschränkt die Analyse auf geänderte Zeilen. Ein Unified Diff wird per --diff übergeben, eine Git-Range per --git-ref (zum Beispiel main..HEAD); in der GitHub Action über den Input diff. Findings und das --fail-on-Gate gelten dann nur für geänderte Zeilen.

Finding

Ein konkreter Verstoß gegen eine Regel an einer konkreten Stelle im Code. Hat eine Severity (info, warn, error), einen Dateipfad, eine Zeilennummer sowie Beschreibung und Empfehlung der Regel.

GitHub Action

Die offizielle CI-Integration bochmann-software/codeguard@v1. Kapselt die CLI, holt sie aus dem Portal mit dem konfigurierten API-Key, führt die Analyse aus und veröffentlicht Findings als PR-Annotations.

Lizenzdatei

Die Datei codecharter.license, die die CLI vor jedem Befehl prüft. Gesucht wird neben dem CLI-Binary, im Arbeitsverzeichnis und im Benutzer-Konfigurationsverzeichnis; der Pfad lässt sich über --license oder die Umgebungsvariable CODECHARTER_LICENSE überschreiben. Ist CODECHARTER_API_KEY gesetzt, erneuert die CLI die Lizenz automatisch über das Portal.

Lockfile

Die Datei .codecharter/codecharter.lock.json im Verzeichnis .codecharter/ Ihres Repositorys. Sie pinnt die aufgelösten Profil-Versionen und Bundle-Hashes: codecharter restore lädt genau diese Bundles herunter, codecharter verify prüft den lokalen Cache dagegen und codecharter update schreibt sie neu.

MCP-Server

Die Integration für KI-Assistenten, gestartet mit codecharter mcp. Stellt CodeCharter-Analyse und Regel-Erstellung als MCP-Tools bereit; codecharter mcp install registriert den Server in unterstützten KI-Tools.

Profil

Ein versioniertes, zusammengestelltes Regelset, referenziert in .codecharter/config.yml als slug@version (zum Beispiel codecharter/[email protected]). CodeCharter liefert kuratierte Plattform-Profile unter dem Präfix codecharter/; Kunden können über das Portal eigene Profile veröffentlichen.

Rule-Pack

Eine Gruppe verwandter Regeln, ausgeliefert als Verzeichnis von .ccr-Dateien. CodeCharter kommt mit eingebauten Packs (allgemeine C#-Regeln, ASP.NET Core, Contracts, unerwünschte Suffixe). Eigene Packs lassen sich beliebig ergänzen.

SARIF

Static Analysis Results Interchange Format, JSON-basierter Standard für Code-Analyse-Tools. CodeCharter kann SARIF v2.1 ausgeben; das Format wird von GitHub Code Scanning und GitLab SAST nativ konsumiert.

Selector

Der erste Teil einer Regel-Query, der bestimmt, welche Code-Elemente geprüft werden: from t in Types, from m in Methods und so weiter.

Severity

Schweregrad eines Findings. CodeCharter kennt drei Stufen:

  • info: Hinweis
  • warn: Warnung
  • error: Fehler

Ob ein Finding den Build scheitern lässt, steuert die --fail-on-Schwelle: ohne sie beendet sich die CLI bei jedem Finding mit Exit-Code 1, auch bei info. Die GitHub Action nutzt per Default fail-on: error.

Spec-Test

Hit- und Miss-Testfälle für eine Regel, abgelegt in einer .spec.md-Datei neben der Regel und ausgeführt mit codecharter test, das einen CI-tauglichen Exit-Code liefert.

Statement-Level-Facts

Die typisierten Properties an jedem Methoden-, Konstruktor- und Property-Accessor-Body (Catches, Invocations, MemberAccesses, Literals, BinaryExpressions, LocalDeclarations), erreichbar über die abgeflachte AllBodies-Collection. Eine Regel liest diese direkt, statt eine eigene m.Syntax-Traversierung für ein verbreitetes Pattern nachzubauen.

Subscription

Die kommerzielle Lizenz für CodeCharter. Steuert, ob Downloads aus dem Portal verfügbar sind. Trial, Starter, Team, Business oder Enterprise. Siehe Plan-Übersicht.

Suppression

Eine bewusste Ausnahme zu einer Regel an einer konkreten Stelle, gesetzt inline per Kommentar (// codecharter-disable, // codecharter-disable-next-line). Um eine Regel komplett zu deaktivieren oder ganze Dateien auszuschließen, dienen stattdessen Regel-Overrides oder ein ignore-Eintrag in .codecharter/config.yml. Mehr unter Suppressions.

TimeProvider

Die .NET-8-Abstraktion über die Systemuhr. CodeCharter enthält eine eingebaute Regel, die direkte DateTime.Now-Aufrufe meldet und empfiehlt, stattdessen TimeProvider per Konstruktor zu injizieren.

Trial

Der 7-tägige kostenlose Vollzugriff, den jeder neue Account beim Registrieren bekommt. Siehe Registrierung und Trial.

VSIX

Die VS-Code-Extension-Datei. Wird über das Portal als Download angeboten und installiert die CodeCharter-Extension im Editor.