As a GitHub Enterprise administrator, one of your first tasks is to set up user accounts and teams so that your company's employees can sign into your GitHub Enterprise instance and collaborate with each other. If you've read and completed all of the steps described in Getting Started with VMware, you should have a brand new Enterprise instance up and running—let's try to sign into it with an admin account.
Sign in
If you accepted the default settings when you configured your GitHub Enterprise instance, you should be using built-in authentication. All authentication details will be stored within your Enterprise instance, and users will have to sign up with a new username and password inside the installation. If you would prefer to use LDAP, CAS, or GitHub OAuth instead, you can refer to the following articles:
For simplicity's sake, let's assume that you are using built-in authentication. When you sign in for the first time, you will see the following screen prompting you to create an admin user account. (You will actually be prompted to do this even if you use another authentication method.)
Choose your username, password, and email address, then click Create an account.
Now let's sign in with the admin account credentials that you just supplied.
Once you have successfully signed in, you will see your personal dashboard. To visit the Site Admin dashboard, click the Admin Tools button in the upper-right corner of the page:
Add users
To start inviting users to set up their accounts, click Invite user near the bottom of the menu on the left side of the Site Admin dashboard.
Choose a username and provide an email address for each of the user accounts that you'd like to set up.
Create an organization
Although new user accounts can immediately start creating and collaborating on repositories on your GitHub Enterprise instance, you will need to set up one or more organizations and teams for them to take advantage of all the unique features that GitHub Enterprise has to offer. Let's first explore what an organization is and how to create it before we turn our attention to teams.
An organization is simply an entity that
- is a collection of user accounts;
- owns repositories;
- has one or more administrators (also known as "owners"); and
- can be split into teams
You can basically think of organizations as separate silos of repository data and teams. Organizations can also be used for namespacing—for example, the following URL scheme takes you to an organization's profile on GitHub Enterprise:
http(s)://[hostname]/[organization name]/
Likewise, the following URL scheme takes you to a repository's profile:
http(s)://[hostname]/[organization name]/[repository name]/
To create a new organization, first go to your personal dashboard by clicking the Octocat (:octocat:) icon in the upper-left corner of the page. Next, click Create Organization under the account context switcher.
Once you have entered the name and contact email address for your organization, you may add users to the organization's Owners team (the account that you used to create the organization is automatically an owner). The Owners team has special privileges—it grants its members complete access to all of the organization's information and repositories. All owners have the same administrative capabilities.
After you have finished adding owners to your organization, you can continue to your organization's dashboard. This is where you will go to add and manage users, teams, and repositories.
Now let's add some teams!
Add a team
Teams are extremely powerful and are central to many of GitHub's collaborative features. In a general sense, you can think of teams as being analogous to UNIX groups, but teams are actually more powerful because more than one team can control access to a single repository (whereas only one UNIX group can control access to a file or directory). For more details on how you can use organizations and teams to control repository access, see What are the different access permissions?
Teams can perhaps most naturally and obviously map to physical teams within your company, but they can also represent areas of interest or expertise. For example, a team of accessibility experts on your Enterprise instance could actually comprise people from several different physical departments. In this way, teams on GitHub Enterprise can represent functional concerns that complement a company's existing divisional hierarchy.
Regardless of how you choose to structure your teams, we highly recommend that you take advantage of team @mentions to notify the appropriate parties when you would like to request their input.
If you are not currently on your organization's dashboard, use the context switcher to select your new organization.
Click Teams on the navigation bar at the top of the page and then click the New Team button.
You may now
- name your team;
- add user accounts ("members") to your team;
- add repositories to your team; and
- choose whether your team gives push (write), pull (read), and/or administrative access to repositories.
Don't forget to save your team when you're done!
As an organization owner, you can create any number of teams; you can also associate more than one team with any user account or repository. A prudent combination of teams is a powerful way to control repository access.
For example, your organization may only allow your release engineering team to push code to the master branch of any of your repositories. To enforce that policy, you could give only the release engineering team Push & Pull permissions to your organization's repositories and give all other teams Pull Only permissions.