2017-06-11 15 views
1

私はこれに類似探しの権限を持っている2つのGitのリポジトリがあります。ユーザーの数はかなり高いもの(〜100現時点では)と成長していると同じ権限

repo myrepo 
    RW+  = admin 
    RW user1$  = user1 
    RW user2$  = user2 
    RW user3$  = user3 
    RW user4$  = user4 

を。両方のリストのパーミッションを維持するのを避けるために、私はの間でreposまたはループする何らかの継承が可能かどうか疑問に思っていました(http://gitolite.com/gitolite/#documentationとstackoverflowを検索しようとしました)

これは可能ですrepo2repo1と同じアクセス許可を持ちますか、またはループ内のユーザー/ブランチごとのアクセス許可を設定するようなものですか?

答えて

2

少なくとも、まず最初に考慮するのは、ユーザーグループの概念です。両方のリポジトリで1つのグループを使用し、そのグループのユーザーリストを一度更新することができます。

あなたはuser referential like LDAPから自動的にそのコンテンツを取得するためには、そのグループを定義することができ、本当にスケールに、その後

@developers  = user1 user2 user3 

repo myrepo 
    RW+  = admin 
    RW  = @developer 

repo myrepo2 
    RW+  = admin 
    RW  = @developer 

group definitionを参照してください。

GROUPLIST_PGM   => '/home/git/bin/ldap-query-groups', 

さらに、gitolite-adminレポを変更する必要はなくなりました。私は必要なもの


グループの誰もが(支店名==ユーザ名で)自分のブランチを取得するということです。 "personal" branches in Gitoliteと呼ばれる

「個人」の枝は、開発者が作業を共有する必要がある環境に最適ですが、直接、通常は起因するネットワークや認証関連のどちらかに(お互いに引くことができません理由、どちらも企業の設定で共通)。

個人的なブランチは、独自の名前空間に存在します。構文は次のとおりです。

personalは」あなたが好きな(しかし、空にすることはできません)何もすることができ、そして「 /USER/」の部分は、(両方のスラッシュを含む)が必要です
RW+ personal/USER/ = @userlist 

ユーザー「alice」そしてpersonal/alice/内の任意の枝をプッシュすることができます(彼女はユーザリストでの場合)(すなわち、彼女はpersonal/alice/foopersonal/alice/barではなくpersonal/aliceをプッシュすることができます)。

+0

THXです!私はグループを認識していますが、グループ内のすべてが同じブランチ上で動作する必要がある場合にのみ機能しますが、グループ内の全員がブランチ名(=ユーザ名)を取得する必要があります。 LDAPを使用していれば、LDAPソリューションは素晴らしいかもしれませんが、実際にはそうしたくありません。 configファイルでこれを直接実行する解決策がない場合は、指定したすべてのreposに同じルールを追加するbashまたはpythonスクリプトを作成します。 – andipla

+0

@andipla 1つにプッシュするという答えを編集しました自分の支店。 – VonC

+0

これは完璧です - まさに私が必要としたものです。 – andipla

0

@ VonCの優れた答えに追加するだけで、あなたのレポをグループ化することもできます。

@developers  = user1 user2 user3 
@cust1repos  = myrepo myrepo2 

repo @cust1repos 
    RW+  = admin 
    RW  = @developer 

これは基本的にここに非常に最初の例http://gitolite.com/gitolite/conf/