对Github中Organization内几个概念的理解

一个github账号可以创建多个仓库(repository),也可以创建多个组织(organization),如下图:

                                                      

本文只讲述组织以及组织内的几个概念:

组织

1:创建组织的界面如下图;Organization account name要全局唯一,因为会通过该账号作为地址的一部分来访问新建的该Organization;通过地址访问Organization示例如下下图:

 

2:创建好Organization后,可以在Organization内创建Repository,创建Team,并可以invite member到People中;创建好organization后,People内就存在一个member:创建Organization的当前账号。

组织的形象标识如下图:

People

1:People里存放了Organization内的所有member;这些成员可以属于某个Team,也可以不属于Team(我称其为组织内的自由人员)。在People里邀请一个人时的界面如下:

2:设置被邀请者在组织内的角色Role。

Member:仅仅可以看到组织内的其他成员(不能对组织内的其他成员进行操作),会被分配对repository的访问权限;

Owner:对organization拥有所有管理者权限(可以对该组织内的其他成员进行操作),并可以完整的访问所有的repositories和teams。

Owner角色的成员对组织内的其他成员的操作如下图:

(1)Change role:改变选中成员的角色,即改为Owner或者Member。

(2)Convert to outside  collaborator:不知道啥意思?

(3)Remove from organization:从当前组织中移除选中成员。

3:为被邀请者选择团队。

如果勾选了团队,则被邀请者作为团队成员加入组织;

如果不勾选团队,则被邀请者作为组织内的自由人员加入组织。下图的第二个成员就是组织内的自由人员,不属于任何Team。

4:角色和团队都设置好以后,发出邀请;在邀请发出后,被邀请者的邮箱会收到一封邮件,经过被邀请者在邮件内同意后,才会加入到组织中,如果勾选了团队,也会加入到团队中。

结论:member首先属于组织,其次才属于组织内的某个Team,也可以不属于任何Team。

团队

1:创建team时,选择可视性;visible:organization内所有人都可以看到这个team;secret:team内的人才可以看到这个team。

2:创建好团队后,团队里就存在一个member:创建团队的当前账号,该member在Team内的role是Maintainer;还可以邀请别的人进入这个team,一同组成这个Team;其实邀请别人加入Team的过程和在People中邀请别人加入组织的过程是一样的,只不过加入Team的过程是封装好的,默认将Role设置为Member,将Team设置为当前Team。在Team发出邀请后,被邀请者的邮箱会收到一封邮件,经过被邀请者在邮件内同意后,才会加入到Team中,被邀请者加入团队后的role依据被邀请者在组织内的角色来决定。

注意:团队内的member,有个角色,是团队内的角色:Maintainer(团队拥有者)或Member(团队成员);People内包含了组织内的所有member(不管是否属于某个Team),member还有个角色,是组织内的角色:Owner(组织拥有者)和Member(组织成员)。组织内的角色会对团队内的角色造成影响:如果一个member在组织内的角色是Owner,那么他在团队内的角色就是Maintainer;如果member在组织内的角色是Member,那么他在团队内的角色也是Member。

仓库

1:在组织内创建仓库的过程就不再描述;下面描述为organization内的repository分配Teams和Collaborators。

英文部分描述:组织内的所有成员默认对repository拥有read权限。

2:下面可以为repository选择team,并为team分配权限;

3:还可以添加collaborator,并为其分配权限;

添加collaborator时有2种情况:

(1):选择的是organization内的自由人员,则直接可将其添加到Collaborators中。

(2):选择的是和organization没有关系的人,则会给他的邮箱发封邮件,让其点击确认后,才可将其加入到Collaborators中;而且其仅仅是加入到仓库的Collaborators中,并不会成为组织的member。

4:需要为分配给仓库的Teams和Collaborators分配权限,具体的权限如下:

(1)Admin 管理者权限(read、clone、push、设置仓库参数、给仓库添加成员 )

(2)Maintain维护者权限(read、clone、push、设置仓库部分参数)

(3)Write 写权限(read、clone、push)

(4)Read 读权限(read、clone) 

需要注意的一点是:

如果组织内的某个成员拥有Owner角色,那么无论该成员是否被分配到仓库的Teams和Collaborators中,他都拥有对仓库的所有权限;因为上面讲过:Owner:对organization拥有所有的管理者权限(可以对该组织内的其他成员进行操作),并可以完整的访问所有的repositories和teams。

总结:

1:组织内可以创建仓库和团队。

2:组织内可以加入member,该member还可以被分配给某个团队。

3:在邀请member时,可以给member分配其在组织内的角色,Owner或者Member。

4:如果member也被分配到了某个团队,其在团队内也有个角色,Maintainer或者Member,但其在团队内的角色受到其在组织内的角色的影响。

5:可以给仓库分配Teams和Collaborators,并设置他们对仓库的访问权限。

6:Collaborators可以来自组织内,也可以来自组织外。

7:如果组织内的某成员拥有Owner角色,那么无论其是否被分配给仓库,他都拥有对仓库的所有权限。

总而言之:就是给github账号分配对仓库的操作权限。

关于github账号创建的仓库(组织外的仓库)的合作者的理解,可以查看《对Github中repository的Collaborators的理解》

原文地址:https://www.cnblogs.com/hzcya1995/p/13302448.html