Permission Level - ourbeehive/ourbeehive.github.io GitHub Wiki

权限等级

首先需要明确的是Github Organization的权限是赋予Team的,而不是直接赋予User.
在创建Team的时候会发现有三种Permission Level,再加上Org Creater默认的Owner权限,总共是四种,权限从低到高分别是:

1.Read Access

This team will be able to view and clone its repositories.
与任何public repo一样,User可以查看repo中的信息,但是修改代码需要fork再pull request,结果repo admin的review以后才会将这个pull request中的内容merge到repo中.

2.Write Access

This team will be able to read its repositories, as well as push to them.
除了Read权限以外,Write可以无须fork,像操作自己的repo一样直接修改有权限的repo.

3.Admin Access

This team will be able to push/pull to its repositories, as well as add other collaborators to them.
除了Write Access以外,Admin可以在这个创建/删除有权限的repo

4.Owner Access

Full access to all repositories and have admin rights to the organization. Owners can change billing info and cancel organization plans.
除了Admin Access以外,还具有Invite Someone邀请User加入Org功能,当然还有duang duang的付费和修改套餐功能。

权限赋予和修改

  1. 在邀请一个User Join Org的时候,需要选择加入的Team,对应的也赋予了该Team对应的权限;
  2. 对应某一个具体的repo,可以在setting中修改该repo的Collaborators中add/remove team;

实践

Team

对应四种权限,OurBeehive中会有四个Team。

  1. Guest(Read Access) 对于无法确保其代码质量,但是希望加入Org的用户,可以加入Guest Team,然后可以fork Repo,再提交pull request,经过code review后再将code merge到repo中.由于ourbeehive org中的repo暂时计划都是public的,因此Read Access权限没有太大意义,唯一的区别是可以使User显示在People列表中,暂时不打算启用.

  2. Member(Write Access)

  3. Admin(Admin Access) Member用户和Admin用户相互重叠,将可以保证代码质量的User加入Admin和Member Team;赋予Admin权限的初衷是为了鼓励User New Repo,同时为了避免Admin权利滥用,对于重要repo,在Collaborators中remove admin team,保证这些repo不会被删除或者随意修改设置。

  4. Owner(Owner Access) 少数几个可以邀请用户的管理员

因此在邀请User加入的时候,分为两种情况:

  1. 无法确保其代码质量,但是希望加入Org的用户-->Guest Team
  2. 可以保证其代码质量-->加入Admin/Member/Guest Team

Repo

Admin Team中的User可以New Repo

if(repo无关紧要) {
        不做任何管理;
    } else if(repo比较重要,不希望被随意删除和修改设置) {
        setting完成后,在Collaborators中remove admin;
        if(允许别人随意修改代码) {
            add member;
        } else if(其他人的commit需要结果code review) {
            add guest;
        }
    }
~~~

## 参考
1.[What are the different access permissions?](https://help.github.com/articles/what-are-the-different-access-permissions/)