ネタ的には前々回の続き
gitoliteは「gitolite-admin」と言うリポジトリに登録されている
「gitolite.conf」に設定を記述し、コミット&プッシュをすることで、
リポジトリの作成や削除、アクセス権の設定が行える。
修正するたびに書き方調べるのもアレなんで、備忘録。
リポジトリ「hoge」を作成する
※アクセス権に関しては後述
[code lang=”xml” line=”1″]
repo hoge
RW+ = @all
[/code]
リポジトリ「hoge」を削除する
confファイルから「hoge」に関する記述を削除する。
※サーバにあるリポジトリの実体は削除されないので、手動で削除する。
アクセス権の種類
gitoliteはリポジトリに、ユーザ単位、グループ単位でアクセス権を与えることができる。
アクセス権の種類は以下のとおり
RW+ | 読み取り、書き込み、巻き戻し可能 |
RW | 読み取り、書き込み可能 |
R | 読み取り可能 |
※RW+はコミットの取り消しができる権限。多用すると混乱を招くので、管理者以外は与えないようにした方が無難。なんなら、管理者も禁止した方がいいかも。
リポジトリのアクセス権設定
リポジトリにアクセス権を設定する場合は、リポジトリに続けてアクセス権を記述する。
例1)foo、barに読み取り、書き込み権限、rootにすべての権限を与える
[code lang=”xml” line=”1″]
repo hoge
RW+ = root
RW = foo bar
[/code]
例2)fooは読み取りのみ、barに読み書き、rootにすべての権限を与える
[code lang=”xml” line=”1″]
repo hoge
RW+ = root
R = foo
RW = bar
[/code]
例3)全員に読み取り権限、rootのみすべての権限を与える
※グループ設定については後述
[code lang=”xml” line=”1″]
repo hoge
R = @all
RW+ = root
[/code]
グループ設定
権限を一人ずつ設定するのは面倒で煩雑になるため、グループを設定する。
グループは「@***」で定義し、スペース区切りでユーザ名を指定する。
※@allはデフォルトで設定されているグループで、全ユーザが含まれている。
[code lang=”xml” line=”1″]
@developer = foo bar
@tester = fuga
@admin = root
repo hoge
R = @tester
RW = @developer
RW+ = @admin
[/code]
ブランチのアクセス権設定
gitoliteはブランチのアクセス権設定も可能。
ただし、ブランチ名は正規表現なので注意が必要。
[code lang=”xml” line=”1″]
repo hoge
RW dev- = @all
R rel- = @all
RW+ rel- = @admin
[/code]
上記だと、「dev-」から始まるブランチは、全員が読み書き可能だが、
「rel-」から始まるブランチは、adminグループのユーザのみが
読み書き巻き戻しが可能となる。
ちなみに、「dev-」ブランチのみに設定したい場合は以下のように記述する
[code lang=”xml” line=”1″]
repo hoge
RW dev-$ = @all
[/code]
なお、ひとつのブランチに読み取り権限を設定すると、
同一リポジトリの他のすべてのブランチにも読み取り権限が付与される。
ブランチごとに設定できるのは書き込み権限以上なので注意すること。
他にも、ファイルに対してアクセス権を設定できるらしいけど、
ここら辺はまだ試してないので、おいおい。
コメント