Githubの組織リポジトリの権限について少し調べてみた

この1年はGithub(The world’s leading software development platform · GitHub)で作業することも増えてきた。かといって、仕事ではGithubを使うことはないし、なかなか上達しない。

ただ幸いに、いろんなコミュニティで、オフライン/オンラインにて生粋のエンジニアさん(わりとガチですごい人達)と交わる機会が出てきて、せめてイシュー管理くらいはある程度できるようにしておきたいと思い始めている。ある程度とは、ドラクエ1で言うと竜王を倒すレベルではなく、ホイミを使いながらなんとかおおさそりを倒すくらい。頑張れ勇者。

でとりあえず色んなリポジトリのイシューにラベルを付けたいと思って、調べつつも会社のADSLが激遅でクグッた結果が5分くらい出てこないので「すごい広島()」のひむひむに聞いてみた。
結論としては「Writeアクセスの権限がないとラベルつけたりできない」ということ。

特に組織用リポジトリについて、詳しくはヘルプ(Managing access to your organization's repositories - GitHub Help)にあるのだが、それを抜粋してみる。

ラベルに関しては

Repository action Read access teams Write access teams Admin access teams Owners team
Apply labels and milestones x x x

となっている模様。
意訳すると「ラベルとマイルストーン(期限)を適用する」
つまりReadアクセスではラベルをつけたりはがしたりできず、Writeアクセス(やその右の権限)がないとムリだということ。

で最少権限の原則からして、ラダトームの城をウロウロしている勇者を竜王の城に行かせたらフルボッコになるのは目に見えているので、とりあえずはRead・Writeアクセスのみを調べてみる。
ReadアクセスとWriteアクセスの列だけを抜き出してみるとこんな感じ

Repository action Read access teams Write access teams
Pull (read), push (write), and fork (copy) all repositories in the organization
Create and delete any repository in the organization
Create and delete the team's repositories
Change settings for repositories assigned to the admin team
Transfer repositories into, and out of, the organization account
Pull from (read) the team's assigned repositories X X
Push to (write) the team's assigned repositories X
Fork (copy) the team's assigned repositories X X
Send pull requests from forks of the team's assigned repositories X X
Merge and close pull requests X
Open issues X X
Close, reopen, and assign issues X
Apply labels and milestones X
Create and edit releases X
View draft releases X
Edit and delete their own comments on commits, pull requests, and issues X X
Edit and delete anyone's comments on commits, pull requests, and issues X
Edit wikis X X
View published releases X X

更にRead アクセスとWrite アクセスで違いのある行だけにすると

Repository action Read access teams Write access teams
Push to (write) the team's assigned repositories X
Merge and close pull requests X
Close, reopen, and assign issues X
Apply labels and milestones X
Create and edit releases X
View draft releases X
Edit and delete anyone's comments on commits, pull requests, and issues X

となる。

勝手な訳をつけておくと、それぞれ

Repository action リポジトリ操作
Push to (write) the team's assigned repositories チームに割り当てられたリポジトリにプッシュ(書き込み)する
Merge and close pull requests プルリクをマージ・クローズする
Close, reopen, and assign issues イシューをクローズ・再オープン・(担当者に)割り当てる
Apply labels and milestones ラベルとマイルストーン(期限)を適用する
Create and edit releases リリースを作成・編集する
View draft releases ドラフトリリースを見る
Edit and delete anyone's comments on commits, pull requests, and issues 他人のコミットコメント・プルリク・イシューを編集・削除する

といったところか。私のGithub力はドラクエ1で言うと、ドラキーを一撃(かいしんのいちげきかもしれない)で倒せるようになった程度なので、変な言い回しとかあると思うけど参考まで。

イシューへのラベルづけとか人の割り当て(アサイン)とかだけできる、ReadとWriteの中間の権限が欲しい気もするが、全体のややこしさからするとこれくらいが妥当なのかもしれない。