13 Stimmen

GIT-Unterstützung für branchbasierte Benutzerautorisierung - Best Practices oder Tools?

Wie kontrolliere ich bei einem produktbasierten GIT-Repository, in dem es Zweige für die Wartung, das Testen und die zukünftige Entwicklung gibt, den Benutzerzugriff auf diese Zweige? Mit Zugriff meine ich, dass andere zwar lesen können, aber nicht in der Lage sein sollten, versehentlich Änderungen am Repository vorzunehmen.

Zum Beispiel,

A - B - C - D - E - F -> master
    |   |       |
    V1  V2'     exp
        |
        V2

"B" ist der Commit, der für Branch mit dem Tag V1 verwendet wird - er ist für die freigegebene Version des Produkts gedacht. Nur Support-/Wartungstechniker sollten darauf Zugriff haben.

C wird für ein kürzlich eingefrorenes Vorab-Produkt V2' verwendet und sollte nur kritische Fehlerbehebungen zulassen, so dass nur bestimmte Entwickler und das Testteam Zugriff darauf haben sollten. Wenn V2 von diesem Zweig aus freigegeben wird, sollte nur der Support darauf zugreifen, wie es bei V1 der Fall ist.

E dient der Verzweigung zum Testen einer neuen Funktion für die zukünftige V3 - nur Entwickler und nicht der Support sollten darauf zugreifen.

"Master"-Änderungen sollten nur auf Anfrage (ähnlich wie bei GitHub) von einem zentralen Integrationsteam zusammengeführt werden.

Wie kann dies mit Git erreicht werden? Ich erinnere mich, gitosis und einige andere externe Tools gesehen zu haben - sind diese für einen sicheren Betrieb mit git unerlässlich, oder gibt es andere bewährte Verfahren?

Danke.

HINZUFÜGEN Gitflow-Best-Practice-Verzweigungsmodell

12voto

VonC Punkte 1117238

Der andere klassische Weg, den Push-Zugriff auf ein Projektarchiv (oder einen Zweig oder sogar ein Verzeichnis) zu beschränken, ist die Verwendung von gitolite (was eigentlich ein groß Entwicklung von gitosis ).

Sie können dort (in der Datei gitolite config-Datei) eine beliebige Gruppe von Benutzern oder eine Gruppe von Repos, die Sie benötigen, und verknüpfen RW Zugangsrechte.


Anmerkung: August 2013:

Wir haben Verzweigungsbeschränkungen eingeführt, die über den Bildschirm "Verzweigungsverwaltung" der Repository-Verwaltung konfiguriert werden können.

Auch Assembla bietet einen solchen Schutz (seit März 2013).

GitHub verfügt noch nicht über diese Funktion :
GitHub hat diese Funktion seit Sept. 2015: siehe " Wie kann man "master" in Github schützen? ".

1voto

Legen Sie einen serverseitigen Commit-Hook an, der Commits zu den Zweigen, die Sie benötigen, schreibgeschützt oder basierend darauf, wer der Committer ist, verweigert.

Für den Arbeitsablauf der Zusammenführung von Anträgen verwenden wir eine lokale Installation von Gitorious und Zusammenführungsanfragen über die Webschnittstelle zu übermitteln und die main-line Repository an Ihr Integrationsteam übergeben, alle anderen arbeiten mit serverseitigen Klonen und stellen dann Merge-Anfragen an das Mainline-Repository.

Mit Gitorious brauchen Sie die serverseitigen Hooks nicht, Sie müssen nur den Zugriff auf die main-line Repository nur an die Personen, die Sie als Committer wünschen. Das ist viel einfacher und leichter zu pflegen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X