4.3. Organization and team
GitHub did not specifically provide an account for the organization in the early days, and many enterprise users or large open source organizations had to use ordinary user accounts as shared accounts for the organization. Later, GitHub launched the new account management model to meet the needs of large development teams.
- An organizational account cannot be used to log in, it contains an owner user group, and only users belonging to this group will be able to switch to the administrator of the organization after logging in.
- You can create as many teams as roles to manage users who belong to your organization. The Owner team is the most privileged role in the organization.
- Organizations can create projects as well as users, but the organization does not have an SSH public key configuration and cannot manipulate the repository as an organizational identity.
- The organization does not have attributes that are owned by personal accounts such as job descriptions.
4.3.1. Creating a new organization
An organization is a non-login account and cannot be created directly like a regular login, but it needs to be logged on as a GitHub user, then create your own organization, and the creator becomes the organization's natural manager.
Figure 4-26 is the user Gotgithub login, by clicking on the top right corner of the account Settings icon to enter the account Settings screen, and then click on the menu "organizations" to enter the organization management interface.
Figure 4-26: Organization Management in Account settings
In the initial organization management interface, the organization list is empty, which is not yet part of any organization. You can choose to convert the current user Gotgithub account to an organizational account (provided that Gotgithub's account does not belong to any organization). This account migration feature is provided because many companies or teams create GitHub accounts in their personal capacity before GitHub provides this new feature, but as an organizational image, GitHub provides a way to migrate from individual accounts to organizational accounts for such accounts.
Instead of doing this migration here, we create a new organization as a user Gotgithub. Click the "Create New Organization" button, which shows the creation of the organization form, shown in 4-27.
Figure 4-27: Creating a new organization
Fill in the organization name gotgitorg here. Creating an organization also selects a billing scheme, which, by default, chooses a free open source scheme that does not have a private repository.
Next, set the owner (owner) for the new organization, as shown in 4-28. The current user, the user who is creating an organization, is, of course, one of the organization's owners. You can also assign more organization owners to your organization, and the permissions of multiple organization owners are no different, you can manage your organization, and you can even remove other users from the owners ' team.
Figure 4-28: Assigning an organization owner
Once created, access the user account settings interface in the organization panel, 4-29, which lists the organization (gotgitorg) to which the current user belongs. You can either re-set the organization or exit the organization. Note Because the current user already belongs to more than one organization, the right-hand button to convert the current user to an organization is grayed out.
Figure 4-29: Organization management interface After joining the organization
4.3.2. Organization and Management
When users Gotgithub become a member of the new organization gotgitorg, they can switch between the user and the Organization's interface. Click the "GitHub" text icon in the top left corner of the page to enter the Dashboard interface.
Figure 4-30: User Dashboard interface
Below the "GitHub" text icon in the top left corner of the dashboard page is the user context list box. Click the user context drop-down list, shown in 4-31.
Figure 4-31: User Context Switch list
After you select organization gotgitorg as the user context in the list of user contexts, the menu and personal account Dashboard menus displayed in the dashboard are slightly different, as shown in 4-32.
Figure 4-32: Dashboard interface for Organization gotgitorg
The organization's dashboard interface differs from the user dashboard in the addition of team management (teams) and organization Management (Organization Settings). Select team from the menu to enter the team management interface to add any number of teams to your organization. Add the new team as shown in interface 4-33.
Figure 4-33: Adding a new team Ios-team
To create a team you need to provide four options (4-33):
- The team name. such as: Ios-team.
- Team members. such as: Supergirl and omnidroid two users as a team member.
- Team permissions. There are three options: Read-only (pull-only), read-write (push & pull), read and write, and manage (push, pull & administrative).
- Authorize the Repository. You can add one or more repositories that have the specified permissions only for the authorized repository.
The read-only authorization in the team license does not make sense for open source projects created by free organization accounts, because open source projects are readable by everyone, and are only valuable for private repositories created by paid organization accounts. The paid account and private repository will be described in a later section. Next you'll learn how to create a repository under your org account.
4.3.3. Repository Management
The organization has a separate project hosting space, click on the "GitHub" text icon in the top left corner of the page to enter the dashboard interface for your org account. The repository of the newly created Org account has not yet been built, click on the "New Repository" button shown in Figure 4-32 to create the repository (i.e. project).
The new version of the repository is shown in interface 4-34.
Figure 4-34: New Project interface
Creating a project in your organization's managed space is slightly different than creating it in a normal user's space, adding the Team settings drop-down box. Figure 4-34 shows that when you create a project named Myipad, you can assign only one defined team to a project, and to assign more teams to a project can be added through the project management interface when the project is created.
Let's take a look at how to assign more teams to established projects. Go to the Project management page, click on the left menu item "Team" to display the project's management interface, which can be used to add and remove teams for the project, as shown in 4-35.
Figure 4-35: Team management for a project
Projects that belong to the team (repository) can be transferred to individuals, and vice versa. Figure 4-36 shows how to transfer projects (repository) between users and organizations through the project management interface.
Figure 4-36: Project Transfer
4.3.4. Individuals or organizations
If you use the "Fork + pull" mode of work, there is little difference between a personal account or an organization account managed repository. If you must find a different point, it is when you submit pull request to the managed repository, the user scope of the message notification is different.
- For a personal account, a pull request is issued to the repository within its hosting space, and the notification message is sent to the personal account and to the mailbox of all collaborators (if any) set up by the repository.
- For an organization, pull request is issued for a repository within its managed space, no pull request is sent to the organization's mailbox, and no notification message is sent to the organization's owner (owner team). Instead, send notification messages to members of the team (not the owner team) who have push permissions in the repository.
Therefore, if you are creating a repository in your organization's managed space, be sure to assign a team with push permissions to the repository so that no one responds when working in Fork + pull mode.
If you work in a shared repository mode (that is, centralized collaboration), it is much more efficient to use an organization to host a repository than to use a personal account host.
- Hosted by a personal account, you need to set up a collaborator (collaborators) for the repository, and if the repository is large and authoritative, the configuration is cumbersome and error-prone.
- Organized by organization, grouping users into one group (team) and empowering teams is much more convenient.
- If it is a private repository created with a paid account, it can be managed in an organizational way, with richer authorization types including read-only, read-write, and more in line with project management realities.
Create an organization on GitHub