Deine Lizenz zählt jede Organisation auf, der du angehörst. Ist das nur eine
einzige, handelt die CLI automatisch als diese Organisation, und diese Seite
betrifft dich nicht. Sind es mehrere, müssen restore und analyze wissen,
unter welcher Organisation, mit welchen Profilen und Berechtigungen und in
welchem Namensraum der aktuelle Lauf stattfinden soll. Die Befehle, die mit
deiner Lizenz das Portal aufrufen (update, restore, rules search, push,
verify --against-portal und das MCP-Tool search_rules), schicken dieselbe
Organisation mit; ein API-Key gehört bereits zu genau einer Organisation und
braucht keine Auswahl.
Wie die CLI eine Organisation wählt
Die CLI löst die handelnde Organisation in dieser Reihenfolge auf und stoppt beim ersten Treffer:
org: <slug>in der hierarchisch aufgelösten.codecharter/config.yml(der Wert, der der analysierten Datei am nächsten liegt, gewinnt, wie bei der übrigen Konfigurationshierarchie üblich). Siehe Konfigurationsdatei.- Die Umgebungsvariable
CODECHARTER_ORG, sofernorg:nicht gesetzt ist. - Die einzige Organisation deiner Lizenz, sofern diese genau eine
abdeckt. Das ist der Zero-Config-Fall und braucht weder
org:noch die Umgebungsvariable. - Löst nichts davon eine Organisation auf und deckt deine Lizenz mehr als eine
ab, bricht die CLI mit einer Fehlermeldung und Exit-Code
64ab und nennt dabei jede Organisation, die deine Lizenz abdeckt, sowie den Weg zur Auswahl.
# .codecharter/config.yml
org: vistron
profiles:
- dotnet-rules@^2
# gleichwertig, ohne config.yml zu ändern
export CODECHARTER_ORG=vistron
codecharter analyze MySolution.sln
Nennst du eine Organisation, die deine Lizenz nicht abdeckt, etwa durch einen
Tippfehler oder weil du die Organisation zwischenzeitlich verlassen hast,
bricht die CLI mit Exit-Code 6 ab und nennt die
Organisationen, die die Lizenz tatsächlich trägt. Führe
codecharter update aus, um deine Lizenz nach dem Beitritt zu einer neuen
Organisation zu aktualisieren; eine gecachte Lizenz spiegelt nur die
Mitgliedschaften wider, mit denen sie ausgestellt wurde.
Warum das nur bei Lizenzen mit mehreren Organisationen auftritt
Eine Lizenz mit nur einer Organisation trägt diese implizit und eindeutig, es
gibt also nichts zu wählen, und die CLI verhält sich wie bisher. Sobald eine
zweite Organisation auf deiner Lizenz erscheint, etwa weil du einem zweiten
Team hinzugefügt wurdest, wird für jeden Befehl, der wissen muss, welche
Organisation mit ihren Profilen und Kontingenten gilt, eine Entscheidung
nötig. Das zeigt sich typischerweise beim nächsten CI-Lauf nach der Aufnahme
in eine zweite Organisation, solange org: noch nirgends gesetzt ist. Leg
deshalb org: oder die Umgebungsvariable schon beim Onboarding in eine
zweite Organisation fest, um einen fehlschlagenden Build zu vermeiden.
Profilreferenzen und Organisationen
Eine Profilreferenz ohne Namensraum (dotnet-rules@^2) wird innerhalb der
aktuell gewählten Organisation aufgelöst. Eine Referenz mit Namensraum
(vistron/dotnet-rules@^2) kann auf das Profil einer anderen Organisation
verweisen als der, als die du gerade handelst; die CLI prüft dabei deine
aktuelle Mitgliedschaft in dieser Organisation, bevor sie das Profil
ausliefert. Der Zugriff spiegelt also stets deine aktuellen Mitgliedschaften
wider, nicht den Stand zum Ausstellungszeitpunkt deiner Lizenz.
Exit-Codes
| Code | Bedeutung |
|---|---|
64 |
Deine Lizenz deckt mehr als eine Organisation ab, und keine wurde per org: oder CODECHARTER_ORG gewählt. |
6 |
Es wurde eine Organisation genannt (per org: oder CODECHARTER_ORG), die deine Lizenz nicht abdeckt. Siehe Lizenzdatei. |
Die vollständige Tabelle findest du unter Exit-Codes.