Einführung
Du kannst Regelsätze erstellen, um zu steuern, wie Benutzende mit Code in Repositorys in deinem Unternehmen interagieren können. Sie haben folgende Möglichkeiten:
- Erstelle einen Branch- oder Tagregelsatz, um Vorgänge zu steuern, z. B. wer Commits an einen bestimmten Branch pushen kann, wie Commits formatiert werden müssen oder wer ein Tag löschen oder umbenennen kann.
- Erstelle einen Push-Regelsatz, um Pushes an ein privates oder internes Repository und das gesamte Forknetzwerk des Repositorys zu blockieren. Mithilfe von Push-Regelsätzen können Sie Pushes basierend auf Dateierweiterungen, Dateipfadlängen, Datei- und Ordnerpfaden und Dateigrößen blockieren.
Weitere Informationen findest du unter Informationen zu Regelsätzen.
Importieren von Regelsätzen
Informationen zum Importieren eines vordefinierten Regelsets, das von GitHub erstellt wurde, finden Sie unter github/ruleset-recipes.
Du kannst einen vorhandenen Regelsatz mithilfe einer JSON-Datei importieren. Dies kann besonders dann hilfreich sein, wenn Sie denselben Regelsatz auf mehrere Repositorys oder Organisationen anwenden möchten. Weitere Informationen finden Sie unter [AUTOTITLE](/organizations/managing-organization-settings/managing-rulesets-for-repositories-in-your-organization#using-ruleset-history).
Wie definiere ich, wo mein Regelsatz gilt?
Mit Regelsätzen kannst du flexibel auf die Organisationen, Repositorys und Branches abzielen, für die Regeln angewendet werden sollen.
-
Um Organisationen anzusprechen, können Sie alle auswählen, aus einer Liste auswählen, ein dynamisches Muster für Organisationsnamen mithilfe von
fnmatchSyntax definieren oder benutzerdefinierte Organisationseigenschaften verwenden, um Organisationen dynamisch basierend auf Metadaten anzusprechen. Weitere Informationen zur Syntax findest du unter Erstellen von Regelsätzen für ein Repository. Informationen zu benutzerdefinierten Eigenschaften finden Sie unter Benutzerdefinierte Eigenschaften. -
In diesen Organisationen können Sie alle Repositorys als Ziel festlegen oder eine dynamische Liste anhand benutzerdefinierter Eigenschaften oder Bereitstellungskontexts als Ziel festlegen.
-
Innerhalb der Repositorys kannst du bestimmte Branches oder Tags als Ziel festlegen: alle Branches, die Standardbranches oder eine dynamische Liste mit der
fnmatch-Syntax.
Wenn du einen Regelsatz erstellst, das auf Branches in einem Repository abzielt, können Repositoryadministratoren keine Branches mehr umbenennen oder den Standardbranch im zielbezogenen Repository ändern. Sie können weiterhin Branches erstellen und löschen, wenn sie über die entsprechenden Berechtigungen verfügen.
Wie kann ich das Format von Commits steuern?
In Branch- oder Tagregelsätzen kannst du eine Regel hinzufügen, die das Format von Commit-Metadaten wie einer Commit-Nachricht oder der E-Mail-Adresse des Autors beschränkt.
Wenn du die Option Muss mit einem bestimmten regex-Muster übereinstimmen auswählst, kannst du die Syntax eines regulären Ausdrucks verwenden, um Muster zu definieren, mit der die Metadaten übereinstimmen müssen oder nicht dürfen. Ausführliche Informationen zu Syntax und Beispielen findest du unter Erstellen von Regelsätzen für ein Repository.
Verwenden von Regelsatz-Erzwingungsstatus
Beim Erstellen oder Bearbeiten Ihres Regelsatzes können Sie Erzwingungsstatus verwenden, um zu konfigurieren, wie Ihr Regelsatz erzwungen wird.
Sie können einen der folgenden Erzwingungsstatus für Ihr Regelsatz auswählen.
-
**<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-play" aria-label="play" role="img"><path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Zm4.879-2.773 4.264 2.559a.25.25 0 0 1 0 .428l-4.264 2.559A.25.25 0 0 1 6 10.559V5.442a.25.25 0 0 1 .379-.215Z"></path></svg> Active**: Dein Regelsatz wird beim Erstellen erzwungen. -
**<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-meter" aria-label="meter" role="img"><path d="M8 1.5a6.5 6.5 0 1 0 6.016 4.035.75.75 0 0 1 1.388-.57 8 8 0 1 1-4.37-4.37.75.75 0 1 1-.569 1.389A6.473 6.473 0 0 0 8 1.5Zm6.28.22a.75.75 0 0 1 0 1.06l-4.063 4.064a2.5 2.5 0 1 1-1.06-1.06L13.22 1.72a.75.75 0 0 1 1.06 0ZM7 8a1 1 0 1 0 2 0 1 1 0 0 0-2 0Z"></path></svg> Evaluate**: Dein Regelsatz wird nicht erzwungen, doch du kannst auf der Seite „Rule Insights“ überwachen, welche Aktionen die Regeln verletzen würden. -
**<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-skip" aria-label="skip" role="img"><path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Zm9.78-2.22-5.5 5.5a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734l5.5-5.5a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z"></path></svg> Disabled**: Dein Regelsatz wird nicht erzwungen oder ausgewertet.
Die Verwendung des Modus „Auswerten“ ist eine hervorragende Option zum Testen des Regelsets, ohne es zu erzwingen. Sie können die Seite „Regeleinblicke“ verwenden, um festzustellen, ob der Beitrag gegen die Regel verstoßen hätte.
Erstellen eines Verzweigungs- oder Tagregelsatzes
-
Navigieren Sie zu Ihrem Unternehmen. Beispielsweise auf der Seite Unternehmen in GitHub.com.
-
Klicke oben auf der Seite auf Policies.
-
Klicke unter „Richtlinien“ auf Code.
-
Klicken Sie auf Neuer Regelsatz.
-
Klicke auf Neuer Regelsatz für Branches, um einen Regelsatz für Branches zu erstellen. Wenn Sie ein Regelsatz für Tags erstellen möchten, klicken Sie auf Neues Tag-Regelsatz.
-
Geben Sie unter „Regelsatzname“ einen Namen für den Regelsatz ein.
-
Um den Standarderzwingungsstatus zu ändern, kannst du optional auf Disabled klicken und einen Erzwingungsstatus auswählen.
Gewähren von Umgehungsberechtigungen für Ihre Verzweigungs- oder Ihren Tag-Regelsatz
Du kannst bestimmten Rollen, Teams oder Apps Berechtigungen zur Umgehung gewähren sowie die Möglichkeit, Umgehungsanforderungen für deinen Regelsatz zu genehmigen.
Für Folgendes ist ein Umgehungszugriff berechtigt:
- Enterprise-Teams, Unternehmens-Apps und Enterprise-Rollen (öffentliche Vorschau)
- Repositoryadministratoren, Organisationsbesitzer und Unternehmensbesitzer
- Die Rolle „Warten“, „Schreiben“ oder „Schlüssel bereitstellen“ übernehmen.
-
Copilot Cloudagent. Weitere Informationen zu Copilot Cloudagent findest du unter [AUTOTITLE](/copilot/concepts/agents/cloud-agent/about-cloud-agent#limitations-in-copilot-cloud-agents-compatibility-with-other-features).
-
Klicke im Abschnitt „Umgehungsliste“ auf Umgehung hinzufügen, um Umgehungsberechtigungen für den Regelsatz hinzuzufügen.
-
Suchen Sie im angezeigten modalen Dialogfeld „Umgehung hinzufügen“ nach der Rolle, dem Team oder der Anwendung, für die Sie Umgehungsberechtigungen erteilen möchten, wählen Sie dann die Rolle, das Team oder die Anwendung aus dem Abschnitt „Vorschläge“ aus und klicken Sie auf Ausgewählte hinzufügen.
-
Optional klicken Sie rechts von „Immer Zulassen“ auf und dann auf Nur für Pull-Requests, um eine Überbrückung an einen Akteur zu gewähren, ohne sie direkt an ein Repository zu übertragen.
Der ausgewählte Akteur ist jetzt aufgefordert, eine Pull-Anforderung zu öffnen, um Änderungen an einem Repository vorzunehmen und eine klare Spur ihrer Änderungen im Pull Request und Überwachungsprotokoll zu erstellen. Die Akteur*innen können dann alle Schutzmechanismen für den Branch umgehen und diesen Pull Request mergen.
Auswählen, welche Organisationen in deinem Unternehmen als Ziel verwendet werden sollen
Wähle alle Organisationen aus, wähle einige vorhandene Organisationen aus, oder lege anhand des Namens eine dynamische Liste fest. Wenn Sie Enterprise Managed Users verwenden, können Sie auch auswählen, alle Repositorys zu prüfen, die von Benutzern in Ihrem Unternehmen verwaltet werden.
Wenn du eine dynamische Liste festlegst, fügst du mithilfe der fnmatch-Syntax ein oder mehrere Benennungsmuster hinzu. Beispielsweise würde die Zeichenfolge *open-source mit allen Organisationen übereinstimmen, deren Namen mit open-source enden. Weitere Informationen zur Syntax findest du unter Erstellen von Regelsätzen für ein Repository.
Auswählen der Repositorys, die in deinem Unternehmen als Ziel verwendet werden sollen
Innerhalb der ausgewählten Organisationen können Sie alle Repositorys oder eine dynamische Liste basierend auf einem Filter als Ziel festlegen:
- Sie können nach benutzerdefinierter Eigenschaft filtern. Weitere Informationen findest du unter Verwalten von benutzerdefinierten Eigenschaften für Repositorys in Ihrer Organisation.
- Wenn Ihre Organisation Datensätze zum linked artifacts page hinzugefügt hat, können Sie auf Repositorys abzielen, die bereitstellbar sind (einen aktiven Speichereintrag haben) oder bereitgestellt sind (einen aktiven Bereitstellungseintrag haben). Siehe Informationen zu verknüpften Artefakten.
Auswählen, welche Verzweigungen oder Tags als Ziel dienen sollen
Wählen Sie im Abschnitt „Ziel-Verzweigungen“ oder „Ziel-Tags“ die Option Ziel hinzufügen aus, und legen Sie dann fest, wie Sie Verzweigungen oder Tags ein- oder ausschließen möchten. Mithilfe der fnmatch-Syntax kannst du Branches oder Tags basierend auf einem Muster ein- oder ausschließen. Weitere Informationen findest du unter Verwenden der fnmatch-Syntax.
Du kannst demselben Regelsatz mehrere Ausrichtungskriterien hinzufügen. Du kannst beispielsweise den Standardbranch und alle Branches einschließen, die dem Muster *feature* entsprechen, und dann explizit einen Branch ausschließen, der dem Muster not-a-feature entspricht.
Auswahl von Branch- oder Tag-Schutz
Wähle im Abschnitt „Schutz von Branches“ oder „Schutz von Tags“ die Regeln aus, die im Regelsatz enthalten sein sollen. Wenn du eine Regel auswählst, kannst du möglicherweise weitere Einstellungen für die Regel eingeben. Weitere Informationen zu den Regeln findest du unter Verfügbare Regeln für Regelsätze.
Metadateneinschränkungen hinzufügen
Deine Metadateneinschränkungen sollen die Konsistenz zwischen Commits in deinem Repository erhöhen. Sie sind nicht dazu bestimmt, Sicherheitsmaßnahmen wie die Anforderung eines Code Reviews über Pull Requests zu ersetzen.
Hinweis
Wenn Sie einen Squashmerge für eine Verzweigung ausführen, müssen alle Commits in dieser Verzweigung alle Metadatenanforderungen für die Basisverzweigung erfüllen.
Wenn Sie End-of-Line-Anker in regulären Ausdrücken verwenden, nutzen Sie \n?$ anstelle von $ allein. Der optionale \n? stimmt mit einem nachfolgenden Zeilenumbruch überein, der möglicherweise in Git-Push-/CLI-Flows vorhanden ist, während weiterhin Commits bearbeitet werden, die über die Web-UI und -API erstellt wurden.
-
Um eine Regel zum Steuern von Commit-Metadaten oder Branchnamen hinzuzufügen, klicke beim Erstellen oder Bearbeiten eines Regelsatzes im Abschnitt „Restrictions“ auf Restrict commit metadata oder auf Restrict branch names.
-
Konfigurieren Sie die Einstellungen für die Einschränkung und klicken Sie dann auf Hinzufügen. Dem gleichen Regelsatz können mehrere Einschränkungen hinzugefügt werden.
-
Um einem bestimmten regex-Muster zu entsprechen, wählen Sie im Dropdownmenü „Anforderung“ die Option Muss einem bestimmten regex-Muster entsprechen aus.
Für die meisten Anforderungen, z. B. „Muss mit einem übereinstimmenden Muster beginnen“, wird das von dir eingegebene Muster wörtlich interpretiert, und Platzhalter werden nicht unterstützt. Das Zeichen
*stellt beispielsweise nur das Literalzeichen*dar.Für komplexere Muster kannst du „Muss einem bestimmten Regex-Muster entsprechen“ oder „Darf nicht mit einem bestimmten Regex-Muster übereinstimmen“ auswählen. Verwende dann die Syntax regulärer Ausdrücke, um das übereinstimmende Muster zu definieren. Weitere Informationen findest du unter Über reguläre Ausdrücke für Commit-Metadaten.
Alle, die die Regelsätze für ein Repository anzeigen, können die von dir bereitgestellte Beschreibung sehen.
-
Bevor du deinen Regelsatz mit Metadateneinschränkungen aktivierst, kannst du optional den Erzwingungsstatus „Evaluate“ für deinen Regelsatz auswählen, um die Auswirkungen von Metadateneinschränkungen zu testen, ohne Mitwirkende zu beeinträchtigen. Weitere Informationen zu Metadateneinschränkungen findest du unter Verfügbare Regeln für Regelsätze.
Abschließen des Verzweigungs- oder Tag-Regelsatzes und der nächsten Schritte
Klicken Sie auf Erstellen, um das Erstellen des Regelsets zu beenden. Wenn der Durchsetzungsstatus des Regelsatzes auf „Aktiv“ eingestellt ist, wird der Regelsatz sofort wirksam.
Sie können Erkenntnisse für den Regelsatz anzeigen, um zu sehen, wie sich die Regeln auf Ihre Teilnehmer auswirken. Wenn der Durchsetzungsstatus auf „Auswerten“ festgelegt ist, können Sie sehen, welche Aktionen bestanden oder fehlgeschlagen wären, wenn der Regelsatz aktiv war. Weitere Informationen zu den Erkenntnissen für Regelsätze findest du unter Verwalten von Regelsätzen für ein Repository.
Erstellen eines Push-Regelsatzes
Hinweis
Dieser Regelsatz erzwingt Push-Beschränkungen für das gesamte Forknetzwerk eines Repositorys.
Du kannst ein Regelwerk für Push-Benachrichtigungen für private oder interne Repositories in deinem Unternehmen erstellen.
- Navigieren Sie zu Ihrem Unternehmen. Beispielsweise auf der Seite Unternehmen in GitHub.com.
- Klicke in der linken Randleiste im Abschnitt „Richtlinien“ auf Code.
- Klicken Sie auf Neuer Regelsatz.
- Klicke auf Neuer Pushregelsatz.
- Geben Sie unter „Regelsatzname“ einen Namen für den Regelsatz ein.
- Um den Standardstatus für die Erzwingung zu ändern, klicke auf Deaktiviert, und wähle einen Erzwingungsstatus aus. Weitere Informationen zu Erzwingungsstatus findest du unter Informationen zu Regelsätzen.
Gewähren von Umgehungsberechtigungen für Ihren Push-Regelsatz
Hinweis
Umgehen von Berechtigungen für Pushregelsätze, die auf ein Repository abzielen, werden vom gesamten Forknetzwerk für dieses Repository geerbt. Dies bedeutet, dass die einzigen Benutzer, die diesen Regelsatz für jedes Repository im gesamten Forknetzwerk dieses Repositorys umgehen können, die Benutzer sind, die dieses Regelsatz im Stamm-Repository umgehen können.
Du kannst bestimmten Rollen, Teams oder Apps Berechtigungen zur Umgehung gewähren sowie die Möglichkeit, Umgehungsanforderungen für deinen Regelsatz zu genehmigen. Für Folgendes ist ein Umgehungszugriff berechtigt:
- Enterprise-Teams, Unternehmens-Apps und Enterprise-Rollen (öffentliche Vorschau)
- Repositoryadministratoren, Organisationsbesitzer und Unternehmensbesitzer
- Die Rolle verwalten oder schreiben oder Schlüssel bereitstellen
-
Copilot Cloudagent. Weitere Informationen zu Copilot Cloudagent findest du unter [AUTOTITLE](/copilot/concepts/agents/cloud-agent/about-cloud-agent#limitations-in-copilot-cloud-agents-compatibility-with-other-features).
- Klicke im Abschnitt „Umgehungsliste“ auf Umgehung hinzufügen, um Umgehungsberechtigungen für den Regelsatz hinzuzufügen.
- Suchen Sie im angezeigten modalen Dialogfeld „Umgehung hinzufügen“ nach der Rolle, dem Team oder der Anwendung, für die Sie Umgehungsberechtigungen erteilen möchten, wählen Sie dann die Rolle, das Team oder die Anwendung aus dem Abschnitt „Vorschläge“ aus und klicken Sie auf Ausgewählte hinzufügen.
Auswählen, welche Organisationen in deinem Unternehmen als Ziel verwendet werden sollen
Wähle alle Organisationen aus, wähle einige vorhandene Organisationen aus, oder lege anhand des Namens eine dynamische Liste fest. Wenn Sie Enterprise Managed Users verwenden, können Sie auch auswählen, alle Repositorys zu prüfen, die von Benutzern in Ihrem Unternehmen verwaltet werden.
Wenn du eine dynamische Liste festlegst, fügst du mithilfe der fnmatch-Syntax ein oder mehrere Benennungsmuster hinzu. Beispielsweise würde die Zeichenfolge *open-source mit allen Organisationen übereinstimmen, deren Namen mit open-source enden. Weitere Informationen zur Syntax findest du unter Erstellen von Regelsätzen für ein Repository.
Auswählen der Repositorys, die in deinem Unternehmen als Ziel verwendet werden sollen
Innerhalb deiner ausgewählten Organisationen kannst du alle Repositorys oder eine dynamische Liste mit benutzerdefinierten Eigenschaften als Ziel festlegen. Weitere Informationen findest du unter Verwalten von benutzerdefinierten Eigenschaften für Repositorys in Ihrer Organisation.
Auswahl von Push-Schutzmaßnahmen
Sie können Pushes an dieses Repository und das gesamte Forknetzwerk dieses Repositorys basierend auf Dateierweiterungen, Dateipfadlängen, Datei- und Ordnerpfaden und Dateigrößen blockieren.
Jeder von Ihnen konfigurierten Pushschutz blockiert Pushes in diesem Repository und im gesamten Forknetzwerk dieses Repositorys.
-
Klicken Sie unter „Pushschutz“ auf die Einschränkungen, die Sie anwenden möchten. Geben Sie dann die Details für die von Ihnen ausgewählten Einschränkungen ein.
Für Dateipfadeinschränkungen können Sie teilweise oder vollständige Pfade verwenden. Sie können
fnmatch-Syntax hierfür verwenden. Eine Einschränkung, die zum Beispiel auftest/demo/**/*zielt, verhindert Pushes an Dateien oder Ordner imtest/demo/-Verzeichnis. Eine Einschränkung mit Zieltest/docs/pushrules.mdverhindert Pushs, speziell an diepushrules.md-Datei imtest/docs/-Verzeichnis. Weitere Informationen finden Sie unter Erstellen von Regelsätzen für ein Repository.
Abschließen des Push-Regelsatzes und der nächsten Schritte
Klicken Sie auf Erstellen, um das Erstellen des Regelsets zu beenden. Wenn der Durchsetzungsstatus des Regelsatzes auf „Aktiv“ eingestellt ist, wird der Regelsatz sofort wirksam.
Sie können Erkenntnisse für den Regelsatz anzeigen, um zu sehen, wie sich die Regeln auf Ihre Teilnehmer auswirken. Wenn der Durchsetzungsstatus auf „Auswerten“ festgelegt ist, können Sie sehen, welche Aktionen bestanden oder fehlgeschlagen wären, wenn der Regelsatz aktiv war. Weitere Informationen zu den Erkenntnissen für Regelsätze findest du unter Verwalten von Regelsätzen für ein Repository.