Einführung
Für Kunden mit GitHub Team- oder GitHub Enterprise-Plänen kannst du Regelsätze in deiner Organisation erstellen, um zu steuern, wie Benutzende mit Repositorys in deiner Organisation interagieren können. Du kannst beispielsweise steuern, wer Commits an einen bestimmten Branch pushen kann, wie diese Commits formatiert werden müssen oder wer ein Tag löschen oder umbenennen kann. Du kannst auch verhindern, dass Benutzer*innen Repositorys umbenennen.
Sie können auch Push-Regelsätze erstellen, um Pusheingaben 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.
Verzweigungen erben keine Verzweigungs- oder Tag-Regelsätze von ihren Upstreamrepositorys. Forks, die sich im Besitz deiner Organisation befinden, unterliegen jedoch wie jedes andere Repository den von dir erstellten Regelsätzen.
Forks erben __ Pushregelsätze aus ihrem Stamm-Repository. Pushregeln gelten für das gesamte Forknetzwerk für ein Repository, um sicherzustellen, dass jeder Einstiegspunkt im Repository geschützt ist. Wenn Sie beispielsweise ein Repository verzweigen, das Push-Regelsätze aktiviert hat, gelten dieselben Push-Regelsätze auch für Ihr Fork-Repository.
Bei einem Fork-Repository sind die einzigen Personen, die über Umgehungsberechtigungen für eine Pushregel verfügen, die Personen, die über Umgehungsberechtigungen im Stamm-Repository verfügen.
Importieren vordefinierter Regelsätze
Informationen zum Importieren eines der vordefinierten Regelsätze durch GitHub 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 findest du unter Verwalten von Regelsätzen für Repositorys in deiner Organisation.
Verwenden der fnmatch
-Syntax
Sie können die Syntax fnmatch
verwenden, um Muster zu definieren, die beim Erstellen eines Regelsatzes als Ziel verwendet werden sollen.
Mit dem Platzhalter *
kannst du nach einer beliebigen Zeichenfolge suchen. Da GitHub das Flag File::FNM_PATHNAME
für die Syntax File.fnmatch
verwendet, entspricht das Platzhalterzeichen *
nicht den Verzeichnistrennzeichen (/
). qa/*
entspricht z. B. allen Branches, die mit qa/
beginnen und einen einzelnen Schrägstrich enthalten, aber nicht qa/foo/bar
. Nach qa
kann mit qa/**/*
eine beliebige Anzahl von Schrägstrichen eingeschlossen werden, um z. B. qa/foo/bar/foobar/hello-world
zu entsprechen. Du kannst mit qa**/**/*
auch die Zeichenfolge qa
erweitern, um die Regel auszudehnen.
Weitere Informationen zu Syntaxoptionen findest du in der Dokumentation zu fnmatch.
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.
- Active: Dein Regelsatz wird beim Erstellen erzwungen.
- Disabled: Dein Regelsatz wird nicht erzwungen.
Erstellen eines Verzweigungs- oder Tagregelsatzes
-
Wähle in der rechten oberen Ecke auf GitHub dein Profilfoto aus, und klicke dann auf Your organizations.
-
Klicke neben der Organisation auf Einstellungen.
-
Wähle auf der linken Randleiste im Abschnitt „Code, Planung und Automatisierung“ die Option Repository aus, und klicke dann auf Regelsätze.
-
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 standardmäßigen Durchsetzungsstatus zu ändern, klicken Sie auf Deaktiviert und wählen Sie einen Durchsetzungsstatus aus. Weitere Informationen zu Erzwingungsstatus findest du unter Informationen zu Regelsätzen.
Auswählen der Repositorys, die in Ihrer Organisation als Ziel verwendet werden sollen
Mit deinem Regelsatz können Sie auswählen, dass alle Repositorys in deiner Organisation, Repositorys in deiner Organisation, die einer bestimmten Namenskonvention entsprechen, Repositorys in deiner Organisation mit benutzerdefinierten Eigenschaften oder eine Liste manuell ausgewählter Repositorys in deiner Organisation einbezogen werden sollen.
Weitere Informationen zu den angepassten Eigenschaften findest du unter Verwalten von benutzerdefinierten Eigenschaften für Repositorys in Ihrer Organisation.
Wenn ein auf Organisationsebene erstellter Regelsatz auf ein Repository ausgerichtet ist, können nur Besitzer*innen der Organisation diesen Regelsatz bearbeiten. Personen mit Administratorzugriff auf das Repository oder mit einer benutzerdefinierten Rolle, einschließlich der Berechtigung „Bearbeiten von Repositoryregeln“, können jedoch zusätzliche Regelsätze auf Repositoryebene erstellen. Die Regeln in diesen Regelsätzen werden mit den Regeln aggregiert, die auf Organisationsebene definiert sind. Das führt dazu, dass durch die Erstellung eines neuen Regelsatzes die Regeln, die auf einen Branch oder ein Tag ausgerichtet sind, restriktiver werden können, jedoch nie weniger restriktiv. Weitere Informationen zum Erstellen von Regelsätzen findest du unter Informationen zu Regelsätzen.
Ausrichten von Repositorys nach Eigenschaften in Ihrer Organisation
Sie können Repositorys in Ihrer Organisation durch benutzerdefinierte Eigenschaften anvisieren. Weitere Informationen findest du unter Verwalten von benutzerdefinierten Eigenschaften für Repositorys in Ihrer Organisation.
- Wähle für eine dynamische nach Eigenschaften sortierte Liste der Repositorys in deiner Organisation im Abschnitt „Target repositories“ neben „Repository targeting criteria“ die Option Repositories matching a filter aus.
- Um ein Ziel hinzufügen, gib im Filterabschnitt eine Abfrage ein, z. B.
visibility:private props.team:infra -language:java
, oder wähle nach Filter aus. - Wähle im angezeigten modalen Dialogfeld aus dem Dropdownmenü benutzerdefinierte Eigenschaften oder Systemeigenschaften und anschließend einen Wert für jede Eigenschaft aus.
- Klicken Sie auf Anwenden.
Adressierung aller Repositorys in Ihrer Organisation
Wähle für alle Repositorys in deiner Organisation im Abschnitt „Target repositories“ neben „Repository targeting criteria“ die Option All repositories aus.
Auswählen von Repositorys in Ihrer Organisation
- Wähle für eine statische, manuell ausgewählte Liste der Repositorys in deiner Organisation im Abschnitt „Target repositories“ neben „Repository targeting criteria“ die Option Only selected repositories aus.
- Um die anzusteuernden Repositorys auszuwählen, wähle im Abschnitt „Targeting criteria“ die Option Select repositories aus, und suche dann nach den Namen der gewünschten Repositorys. Wähle die einzelnen Repositorys aus den Suchergebnissen aus.
Zielgruppenadressierung von Repositorys nach Namenskonvention in Ihrer Organisation
-
Wähle für eine dynamische Liste der Repositorys in deiner Organisation im Abschnitt „Target repositories“ neben „Repository targeting criteria“ die Option Repositories matching a name aus.
-
Um mit der Definition eines Zielmusters zu beginnen, wähle im Abschnitt „Targeting criteria“ die Option Add a target aus, und klicke dann auf Include by pattern oder Exclude by pattern.
-
Gib im daraufhin angezeigten modalen Dialogfeld ein Benennungsmuster für die Repositorys mit der Syntax
fnmatch
ein, und klicke dann auf Einschlussmuster hinzufügen oder Ausschlussmuster hinzufügen. Weitere Informationen zur Syntaxfnmatch
findest du unter Verwenden derfnmatch
-Syntax.Hinweis
Du kannst demselben Regelsatz mehrere Ausrichtungskriterien hinzufügen. Du kannst beispielsweise alle Repositorys einschließen, die dem Muster
*cat*
entsprechen, und dann explizit ein Repository ausschließen, das dem Musternot-a-cat
entspricht. -
Auf der Seite für die Regelsatzkonfiguration kannst du bei Bedarf die Option Umbenennung von Zielrepositorys verhindern auswählen.
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.
Auswählen von Verzweigungs- oder Tagschutz
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.
Hinweis
Wenn du im Abschnitt „Additional settings“ die Option Require status checks before merging auswählst, hast du folgende Möglichkeiten:
- Du kannst den Namen jeder Statusüberprüfung eingeben, die du als erforderlich festlegen möchtest. Um das Hinzufügen einer Statusüberprüfung als Anforderung abzuschließen, musst du auf klicken.
- Wenn du Erzwingen, dass Branches vor dem Mergen aktuell sein müssen auswählst, musst du eine Überprüfung definieren, damit der Schutz wirksam wird.
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.
Erstellen eines Push-Regelsatzes
Hinweis
Dieser Regelsatz erzwingt Push-Beschränkungen für das gesamte Forknetzwerk eines Repositorys.
Sie können einen Pushregelsatz für private oder interne Repositorys in Ihrer Organisation erstellen.
-
Wähle in der rechten oberen Ecke auf GitHub dein Profilfoto aus, und klicke dann auf Your organizations.
-
Klicke neben der Organisation auf Einstellungen.
-
Wähle auf der linken Randleiste im Abschnitt „Code, Planung und Automatisierung“ die Option Repository aus, und klicke dann auf Regelsätze.
-
Klicken Sie auf Neuer Regelsatz.
-
Klicken Sie auf Neuer Push-Regelsatz, um einen Regelsatz für Branches zu erstellen.
-
Geben Sie unter „Regelsatzname“ einen Namen für den Regelsatz ein.
-
Um den standardmäßigen Durchsetzungsstatus zu ändern, klicken Sie auf Deaktiviert und wählen Sie einen Durchsetzungsstatus 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.
Sie können bestimmten Rollen, Teams oder Apps Umgehungsberechtigungen für Ihren Regelsatz zu genehmigen, gewähren. Für folgende Elemente kann Umgehungszugriff eingerichtet werden:
- Repositoryadministratoren, Organisationsbesitzer und Unternehmensbesitzer
- Die Rolle verwalten oder schreiben oder benutzerdefinierte Repository-Rollen basierend auf der Schreibrolle
- Teams, ausgenommen geheime Teams. Weitere Informationen findest du unter Informationen zu Teams.
- GitHub Apps
- Dependabot. Weitere Informationen zu Dependabot findest du unter Schnellstartanleitung für Dependabot.
- Um Umgehungsberechtigungen für den Regelsatz zu erteilen, klicke im Abschnitt „Bypass list“ auf Add bypass.
- 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 der Repositorys, die in Ihrer Organisation als Ziel verwendet werden sollen
Mit deinem Regelsatz können Sie auswählen, dass alle Repositorys in deiner Organisation, Repositorys in deiner Organisation, die einer bestimmten Namenskonvention entsprechen, Repositorys in deiner Organisation mit benutzerdefinierten Eigenschaften oder eine Liste manuell ausgewählter Repositorys in deiner Organisation einbezogen werden sollen.
Weitere Informationen zu den angepassten Eigenschaften findest du unter Verwalten von benutzerdefinierten Eigenschaften für Repositorys in Ihrer Organisation.
Wenn ein auf Organisationsebene erstellter Regelsatz auf ein Repository ausgerichtet ist, können nur Besitzer*innen der Organisation diesen Regelsatz bearbeiten. Personen mit Administratorzugriff auf das Repository oder mit einer benutzerdefinierten Rolle, einschließlich der Berechtigung „Bearbeiten von Repositoryregeln“, können jedoch zusätzliche Regelsätze auf Repositoryebene erstellen. Die Regeln in diesen Regelsätzen werden mit den Regeln aggregiert, die auf Organisationsebene definiert sind. Das führt dazu, dass durch die Erstellung eines neuen Regelsatzes die Regeln, die auf einen Branch oder ein Tag ausgerichtet sind, restriktiver werden können, jedoch nie weniger restriktiv. Weitere Informationen zum Erstellen von Regelsätzen findest du unter Informationen zu Regelsätzen.
Ausrichten von Repositorys nach Eigenschaften in Ihrer Organisation
Sie können Repositorys in Ihrer Organisation durch benutzerdefinierte Eigenschaften anvisieren. Weitere Informationen findest du unter Verwalten von benutzerdefinierten Eigenschaften für Repositorys in Ihrer Organisation.
- Wähle für eine dynamische nach Eigenschaften sortierte Liste der Repositorys in deiner Organisation im Abschnitt „Target repositories“ neben „Repository targeting criteria“ die Option Repositories matching a filter aus.
- Um ein Ziel hinzufügen, gib im Filterabschnitt eine Abfrage ein, z. B.
visibility:private props.team:infra -language:java
, oder wähle nach Filter aus. - Wähle im angezeigten modalen Dialogfeld aus dem Dropdownmenü benutzerdefinierte Eigenschaften oder Systemeigenschaften und anschließend einen Wert für jede Eigenschaft aus.
- Klicken Sie auf Anwenden.
Adressierung aller Repositorys in Ihrer Organisation
Wähle für alle Repositorys in deiner Organisation im Abschnitt „Target repositories“ neben „Repository targeting criteria“ die Option All repositories aus.
Auswählen von Repositorys in Ihrer Organisation
- Wähle für eine statische, manuell ausgewählte Liste der Repositorys in deiner Organisation im Abschnitt „Target repositories“ neben „Repository targeting criteria“ die Option Only selected repositories aus.
- Um die anzusteuernden Repositorys auszuwählen, wähle im Abschnitt „Targeting criteria“ die Option Select repositories aus, und suche dann nach den Namen der gewünschten Repositorys. Wähle die einzelnen Repositorys aus den Suchergebnissen aus.
Zielgruppenadressierung von Repositorys nach Namenskonvention in Ihrer Organisation
-
Wähle für eine dynamische Liste der Repositorys in deiner Organisation im Abschnitt „Target repositories“ neben „Repository targeting criteria“ die Option Repositories matching a name aus.
-
Um mit der Definition eines Zielmusters zu beginnen, wähle im Abschnitt „Targeting criteria“ die Option Add a target aus, und klicke dann auf Include by pattern oder Exclude by pattern.
-
Gib im daraufhin angezeigten modalen Dialogfeld ein Benennungsmuster für die Repositorys mit der Syntax
fnmatch
ein, und klicke dann auf Einschlussmuster hinzufügen oder Ausschlussmuster hinzufügen. Weitere Informationen zur Syntaxfnmatch
findest du unter Verwenden derfnmatch
-Syntax.Hinweis
Du kannst demselben Regelsatz mehrere Ausrichtungskriterien hinzufügen. Du kannst beispielsweise alle Repositorys einschließen, die dem Muster
*cat*
entsprechen, und dann explizit ein Repository ausschließen, das dem Musternot-a-cat
entspricht. -
Auf der Seite für die Regelsatzkonfiguration kannst du bei Bedarf die Option Umbenennung von Zielrepositorys verhindern auswählen.
Auswählen von Pushschutz
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.md
verhindert 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.