Zum Inhalt springen

Organisation in der CLI wählen

Wie die CLI wählt, als welche Organisation sie handelt, wenn Ihre Lizenz mehrere abdeckt, und was zu tun ist, wenn sie es nicht eindeutig entscheiden kann.

Ihre Lizenz zählt jede Organisation auf, der Sie angehören. Ist das nur eine einzige, handelt die CLI automatisch als diese Organisation, und diese Seite betrifft Sie 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.

Wie die CLI eine Organisation wählt

Die CLI löst die handelnde Organisation in dieser Reihenfolge auf und stoppt beim ersten Treffer:

  1. 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.
  2. Die Umgebungsvariable CODECHARTER_ORG, sofern org: nicht gesetzt ist.
  3. Die einzige Organisation Ihrer Lizenz, sofern diese genau eine abdeckt. Das ist der Zero-Config-Fall und braucht weder org: noch die Umgebungsvariable.
  4. Löst nichts davon eine Organisation auf und deckt Ihre Lizenz mehr als eine ab, bricht die CLI mit einer Fehlermeldung und Exit-Code 64 ab und nennt dabei jede Organisation, die Ihre 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

Nennen Sie eine Organisation, die Ihre Lizenz nicht abdeckt, etwa durch einen Tippfehler oder weil Sie die Organisation zwischenzeitlich verlassen haben, bricht die CLI mit Exit-Code 6 ab und nennt die Organisationen, die die Lizenz tatsächlich trägt. Führen Sie codecharter update aus, um Ihre 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 Ihrer Lizenz erscheint, etwa weil Sie einem zweiten Team hinzugefügt wurden, 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. Legen Sie 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 Sie gerade handeln; die CLI prüft dabei Ihre aktuelle Mitgliedschaft in dieser Organisation, bevor sie das Profil ausliefert. Der Zugriff spiegelt also stets Ihre aktuellen Mitgliedschaften wider, nicht den Stand zum Ausstellungszeitpunkt Ihrer Lizenz.

Exit-Codes

Code Bedeutung
64 Ihre 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 Ihre Lizenz nicht abdeckt. Siehe Lizenzdatei.

Die vollständige Tabelle finden Sie unter Exit-Codes.

Weiterführend