Wie funktionieren GitHub-Organisationen und -Berechtigungen?
In der vorherigen Lerneinheit haben Sie die verschiedenen Möglichkeiten für die Authentifizierung von Benutzern bei GitHub kennengelernt. In dieser Lerneinheit erfahren Sie mehr über Berechtigungen für jede hierarchische Ebene:
- Repositoryberechtigungen
- Teamberechtigungen
- Organisationsberechtigungen
- Unternehmensberechtigungen
Berechtigungsebenen für Repositorys
Sie können den Zugriff auf jedes Repository anpassen, indem Sie bestimmte Berechtigungsstufen zuweisen. Es gibt fünf Standardberechtigungen auf Repositoryebene:
- Read (Lesen): Diese Ebene wird für Personen empfohlen, die nicht zum Code beitragen und sich das Projekt nur ansehen oder darüber sprechen möchten. Diese Ebene eignet sich gut für alle, die den Inhalt im Repository anzeigen müssen, aber tatsächlich keine Beiträge posten oder Änderungen vornehmen müssen.
- Triage: Empfohlen für Mitwirkende, die proaktiv Probleme und Pull Requests verwalten müssen, ohne Schreibzugriff. Diese Stufe ist nützlich für Projektmanager, die Probleme und Diskussionen nachverfolgen, ohne Code zu ändern.
- Schreiben: Empfohlen für Mitwirkende, die aktiv zu Ihrem Projekt pushen. „Schreiben“ ist die Standardberechtigung für die meisten Entwickelnden.
- Verwalten: Diese Rolle wird für Projektmanager empfohlen, die das Repository verwalten müssen, aber keinen Zugriff auf sensible oder destruktive Aktionen benötigen.
- Administrator*in: Diese Rolle wird für Personen empfohlen, die vollständigen Zugriff auf das Projekt benötigen, einschließlich vertraulicher und destruktiver Aktionen wie das Verwalten der Sicherheit oder das Löschen eines Repositorys. Dies Personen sind Repositorybesitzer und Administratoren.
Sie können Mitgliedern von Organisationen, externen Mitarbeitern und Teams unterschiedliche Zugriffsebenen für die in einer Organisation befindlichen Repositorys einräumen. Jede Berechtigungsstufe gewährt schrittweise mehr Zugriff auf Repositoryinhalte und -einstellungen. Wählen Sie die Ebene aus, die für die Rolle der einzelnen Personen oder Teams in Ihrem Projekt am besten geeignet ist, ohne umfangreicheren Zugriff auf das Projekt zu erteilen, als erforderlich ist.
Administratoren können auch benutzerdefinierte Rollen in GitHub Enterprise erstellen und eine dieser Basisrollen nach Bedarf mit zusätzlichen Berechtigungen erweitern.
Was ist Repository-Forking?
Die Freihandeingabe ist eine Möglichkeit, eine persönliche Kopie des Repositorys einer anderen Person unter Ihrem eigenen GitHub-Konto zu erstellen. Wenn Sie ein Repository verzweigen, erhalten Sie Ihre eigene Version, die Sie frei ändern können, ohne dass sich dies auf das ursprüngliche Projekt auswirkt. Dieser Prozess ist ein gängiger Workflow für einen sicheren Beitrag zur Open Source oder zum Sicheren Experimentieren mit Änderungen.
Sie können Ihre Verzweigung auch auf dem neuesten Stand halten, indem Sie Änderungen aus dem ursprünglichen Repository abrufen, häufig als "Upstream"-Repository bezeichnet.
Hier erfahren Sie, wie Sie ein Repository verzweigen:
Navigieren Sie auf GitHub.com zur Hauptseite des Repositorys, das Sie verzweigen möchten.
Wählen Sie in der oberen rechten Ecke "Verzweigung" aus.
Wählen Sie einen Besitzer für die Verzweigung (Ihr persönliches Konto oder eine Organisation) aus.
Optional können Sie das Verzweigungs-Repository umbenennen oder alle Verzweigungen einschließen.
Wählen Sie Create fork (Fork erstellen) aus.
Verwalten von Freihandberechtigungen (für Administratoren)
Für Repositorys im Besitz der Organisation können Administratoren steuern, ob Repositorys verzweigt werden können:
- Öffentliche Repositorys: Freihandeingaben sind immer zulässig.
- Private Repositorys: Die Freihandeingabe kann nur für Organisationsmitglieder deaktiviert oder eingeschränkt werden.
- Interne Repositorys: Diese können nur innerhalb desselben Unternehmenskontos verzweigt werden.
So konfigurieren Sie Die Verzweigungseinstellungen:
Wechseln Sie zu den Einstellungen des Organisations-Repositorys.
Klicken Sie in der linken Randleiste unter Access auf Mitgliederberechtigungen.
Suchen Sie die Repository-Forkingoptionen , und aktualisieren Sie sie nach Bedarf.
Tipp
Wenn Sie die Freihandeingabe für ein privates Repository deaktivieren, kann niemand (einschließlich Organisationsmitglieder) es verzweigen.
Weitere Informationen finden Sie im GitHub-Dokumentartikel zu Fork a repo.
Anzeigen von Repository-Insights
Repository-Insights auf GitHub bieten eine leistungsstarke Möglichkeit, die Aktivitäten, Beiträge und Abhängigkeiten Ihres Projekts zu überwachen und zu analysieren. Durch die Nutzung dieser Erkenntnisse können Sie den Projektstatus nachverfolgen, Engpässe identifizieren und die Sicherheit sicherstellen. In diesem Abschnitt werden Sie durch die Schritte für den Zugriff auf Repositoryerkenntnisse und bewährte Methoden für die effektive Verwendung führen.
Schritte zum Anzeigen von Repository-Insights
- Navigieren Sie zu dem Repository auf GitHub.
- Klicken Sie unter dem Repositorynamen auf die Registerkarte "Insights ".
- Erkunden Sie die folgenden Abschnitte auf der Registerkarte "Insights":
- Mitwirkende: Anzeigen eines Diagramms von Beiträgen im Laufe der Zeit, einschließlich Commits, Ergänzungen und Löschungen durch jeden Mitwirkenden.
- Datenverkehr: Überwachen des Repository-Datenverkehrs, einschließlich eindeutiger Besucher und Seitenansichten.
- Commits: Analysieren der Commit-Aktivität im Laufe der Zeit.
- Codehäufigkeit: Verfolgen Sie die Anzahl der zeilen, die im Laufe der Zeit hinzugefügt und gelöscht wurden.
- Abhängigkeitsdiagramm: Zeigen Sie die Abhängigkeiten Ihres Repositorys an, und identifizieren Sie potenzielle Sicherheitsrisiken.
Bewährte Methoden für die Verwendung von Repository-Insights
- Beiträge überwachen: Verwenden Sie den Abschnitt "Mitwirkende", um aktive Mitwirkende und Bereiche des Repositorys zu identifizieren, die die größte Aufmerksamkeit erhalten.
- Nachverfolgen von Datenverkehr: Verwenden Sie den Abschnitt "Datenverkehr", um zu verstehen, wie Benutzer mit Ihrem Repository interagieren und Trends im Engagement identifizieren.
- Adressieren von Sicherheitsrisiken: Überprüfen Sie regelmäßig das Abhängigkeitsdiagramm, um sicherzustellen, dass Ihr Repository sicher bleibt.
Durch die Nutzung von Repository-Erkenntnissen können Sie datengesteuerte Entscheidungen treffen, um die Zusammenarbeit, Sicherheit und Projektmanagement zu verbessern.
Möglichkeiten, wie Benutzer Repositoryzugriff erhalten
Aktionen einer benutzenden Person mit einer Liste ihrer Repositoryberechtigungen
Die effektiven Berechtigungen eines Benutzers in einem Repository werden durch verschiedene Faktoren beeinflusst, darunter:
- Repository-Rolle: (z. B. Admin, Schreiben, Lesen)
- Teammitgliedschaft: (z. B. geerbte Berechtigungen von einem Team)
- Organisationsmitgliedschaft: (z. B. Standardorganisationsberechtigungen, SSO-Anforderungen)
Wenn Sie diese verschiedenen Berechtigungsquellen kombinieren, wendet GitHub die höchste Zugriffsebene an, die dem Benutzer gewährt wurde. Wenn ein Benutzer beispielsweise Lesezugriff über ein Team hat, aber auch Schreibzugriff direkt als Mitwirkender zugewiesen bekommt, erhält er dadurch effektiv Schreibberechtigungen.
Optionen für die Repositorymitgliedschaft
Wenn Sie Zugriff auf ein Repository gewähren, gibt es mehrere Möglichkeiten, wie ein Benutzer zu einem Mitarbeiter werden kann:
| Mitgliedstyp | BESCHREIBUNG |
|---|---|
| Direkter Mitarbeiter | Explizit mit einer bestimmten Rolle (Lesen, Triage, Schreiben, Warten oder Admin) zum Repository hinzugefügt. Empfohlen für externe Mitwirkende oder kleine Teams. |
| Teammitgliedschaft | Ein Benutzer erbt den Repositoryzugriff über seine Teammitgliedschaft. Teamberechtigungen werden häufig auf Organisationsebene für eine konsistente, skalierbare Verwaltung festgelegt. |
| Standardberechtigungen der Organisation | Wenn das Repository Teil einer Organisation ist, gibt es möglicherweise eine Standardberechtigungsstufe für alle Organisationsmitglieder (z. B. None, Read). Besitzer können diese Standardwerte für bestimmte Teams oder Benutzer außer Kraft setzen. |
| Externe Mitarbeiter | Ein Benutzer, der kein Mitglied der Organisation ist, aber expliziten Zugriff auf ein Repository hat. Nützlich für Auftragnehmer, Freiberufler oder Open-Source-Mitwirkende, die eingeschränkten Zugriff benötigen. |
Überwachen und Überprüfen des Repositoryzugriffs
Regelmäßige Überprüfung, wer Zugriff auf ein Repository hat, stellt eine korrekte Sicherheit und Einhaltung der Vorschriften sicher. Hier sind einige empfohlene Schritte und Tools:
Zugriff in Repositoryeinstellungen anzeigen:
- Navigieren Sie zu Einstellungen > Zugriff verwalten (für das Repository).
- Überprüfen Sie die Liste der Benutzer und Teams zusammen mit ihren Berechtigungsstufen.
Organisationsüberwachungsprotokoll (GitHub Enterprise- oder Organisationsebene):
- Organisationsbesitzer können Änderungen an Mitgliedschaft, Repositoryzugriff und Berechtigungen im Überwachungsprotokoll anzeigen.
- Filtern Sie Ereignisse nach Repositorynamen oder Zugriffsänderungen für eine fokussiertere Ansicht.
Enterprise-Überwachungsprotokoll (GitHub Enterprise):
- Wenn Sie mehrere Organisationen verwalten, verwenden Sie das Überwachungsprotokoll des Unternehmenskontos, um Änderungen in allen Organisationen und Repositorys nachzuverfolgen.
- Dies ist besonders für Complianceberichte oder umfangreiche Sicherheitsüberprüfungen hilfreich.
Automatisierte Skripterstellung:
- Verwenden Sie die GitHub-REST-API oder graphQL-API, um Mitarbeiter, Teams und Berechtigungen programmgesteuert auflisten.
- Integrieren Sie Skripts in Ihre CI/CD-Pipeline oder Sicherheitsdashboards, um Anomalien kontinuierlich zu überwachen und zu kennzeichnen.
Tipp: Richten Sie Branch-Schutzregeln und erforderliche Überprüfungen ein, um eine weitere Ebene der Sicherheit und Verantwortlichkeit für alle Codeänderungen hinzuzufügen.
Teamberechtigungsstufe
Ein Team in einer GitHub-Organisation ist eine Gruppe von Benutzern, die an freigegebenen Repositorys zusammenarbeiten. Teams optimieren die Zugriffsverwaltung und Kommunikation, indem sie einheitliche Berechtigungen für mehrere Repositorys gleichzeitig anwenden. Zu den wichtigsten Vorteilen gehören:
- Zentrale Zugriffssteuerung: Weisen Sie repositoryberechtigungen (z. B. "Lesen", "Schreiben") dem gesamten Team zu, anstatt jeden Benutzer einzeln zu verwalten.
- Strukturierte Zusammenarbeit: Organisieren Sie Mitglieder nach Abteilung, Projekt oder Rolle, um eine effizientere Zusammenarbeit zu ermöglichen.
- Sichtbarkeit und Kommunikation: Jedes Team kann über eine eigene Diskussionsrunde verfügen, wodurch es einfacher ist, Aktualisierungen zu teilen und Anstrengungen zu koordinieren.
Teams stellen eine einfache Möglichkeit dar, mehreren in Beziehung stehenden Benutzern Repositoryberechtigungen gleichzeitig zuzuweisen. Auch Mitglieder eines untergeordneten Teams erben die Berechtigungseinstellungen des übergeordneten Teams. Dieser Ansatz bietet eine einfache Möglichkeit, Berechtigungen über die natürliche Struktur des Unternehmens zu kaskadieren.
Es gibt zwei Berechtigungsebenen auf Teamebene:
| Berechtigungsstufe | Beschreibung |
|---|---|
| Mitglied | Teammitglieder verfügen über dieselben Fähigkeiten wie Organisationsmitglieder. |
| Maintainer | Teambetreuer können neben allen Aktionen, die Teammitglieder ausführen können, Folgendes ausführen: – Ändern des Namens, der Beschreibung und der Sichtbarkeit des Teams. - Fordern Sie das Team auf, eine Änderung der übergeordneten und untergeordneten Teams vorzunehmen. – Festlegen des Teamprofilbilds. – Bearbeiten und Löschen von Teamdiskussionen. – Hinzufügen und Entfernen von Organisationsmitgliedern zum bzw. aus dem Team. - Befördern Sie Teammitglieder zu Teambetreuern. – Entfernen des Zugriffs des Teams auf Repositorys. - Verwalten Sie die Code Review-Zuweisung für das Team. - Verwalten Sie geplante Erinnerungen für Pull Requests. |
Ein Organisationsbesitzer kann auch jedes Mitglied der Organisation zum Teambetreuer ernennen.
Um den Zugriff auf ein Repository zu überwachen, das Sie verwalten, können Sie eine kombinierte Liste von Teams und Benutzern mit Zugriff auf Ihr Repository in Ihren Einstellungen anzeigen:
GitHub bietet mehrere Berechtigungsstufen, die Teams zugewiesen werden können. Wenn Sie einem Team Zugriff auf ein Repository gewähren, können Sie aus den folgenden Berechtigungsmodellen wählen:
Berechtigungsmodelle
| Berechtigungsstufe | BESCHREIBUNG | Am besten geeignet für |
|---|---|---|
| Lesen | Benutzer können das Repository anzeigen und klonen. Kann Tickets und Pull Requests öffnen und Kommentare dazu erstellen. | Personen mit schreibgeschütztem Zugriff oder deren Zugriff überprüft werden muss. |
| Triage | Benutzer können Probleme und Pullanforderungen verwalten (z. B. Bezeichnung, Zuweisen, Kommentar). Änderungen können nicht an das Repository übertragen werden. | Projektmanager oder Mitwirkende, die Probleme ohne Code triagen und organisieren müssen. |
| Schreiben | Benutzende können auf Branches (mit Ausnahme geschützter Branches) pushen. Kann Probleme und Pullanforderungen verwalten. | Aktive Mitwirkende, die Code übernehmen oder die Dokumentation aktualisieren müssen. |
| Unterhalten | Benutzer können Repositoryeinstellungen, Probleme und Pullanforderungen verwalten. Das Repository kann nicht gelöscht oder übertragen werden. | Projektverantwortliche, die die Verwaltung des Repository routinemäßig durchführen, aber keine vollständigen Administratorrechte benötigen. |
| Administrator | Benutzer haben die vollständige Kontrolle über das Repository, einschließlich der Einstellung von Berechtigungen, dem Löschen des Repositorys und der Verwaltung aller Einstellungen. | Diejenigen, die administrativen Zugriff auf oberster Ebene benötigen. |
Tipp: Befolgen Sie stets das Prinzip der geringsten Berechtigungen – weisen Sie jedem Team die niedrigste Berechtigungsstufe zu, die für die effektive Erfüllung seiner Aufgaben erforderlich ist. Dieser Ansatz reduziert das Risiko versehentlicher oder nicht autorisierter Änderungen.