Creating a Github organization and inviting members

Github is an online collaborative project-management site that provides free hosting for open-source, public projects and that can be used to manage private projects (which involves a monthly fee).  It is the recommended project management system for the projects at Urbana ’15.

Step 1: Get an account

Organizations within Github are created by first logging in as an individual.  If you do not have an account, you can sign up for one at www.github.com.  You pick a user name (this is how you will be known on Github, and it can either be your actual name or a pseudonym), register an email address (where Github will contact you; this it not published to other users), and a password (which you’ll need to remember, along with the user name).

On the next page, you will choose a plan.  You can always upgrade this later, so you may want to start with the free plan, which is selected by default.  Even if you want to set up private repositories for the organization, you do not need to pay for a more expensive individual plan.

Check the box for “Help met set up an organization next” before pressing the Finish sign up button, which will turn the button into Continue to setup organization.

(To get access to all of the Github services, you will need to follow the link in the email sent to the address given above to verify your account.  This will require you to sign in with the user name and password you specified above.)

Step 2: Set up an organization

If you already have a Github account, log on to Github and use the + pull-down menu item to Create a New organization.

You need to pick a name and billing email for the organization.

The name has to begin with a letter and can contain only letters, numbers, and single hyphens.  Picking optimal names is hard.  Ideally, this would be the name of the entity which ends up managing and distributing the project.  To start with, you may want to pick the project name as the organization name.  If you have purchased a domain name for the project, that could be a good option to start with.

The billing email can be the same one you selected for your personal account, but you may want to consider making this an email forward if you have purchased a domain name for the project.  This will let you change it over time as people come and go from the organization.  This can be changed later, so don’t fret about it.

You will need to choose a plan for the organization.  If you are comfortable with making your source code and discussions public, the default Open Source plan makes sense.  If you are creating a for-profit project or for other reasons wish to keep your discussions private, you will need to select the Bronze plan ($25/month) or higher.

Step 3: Invite members

When the organization has been created, you will be sent to a page that will let you look up Github members by user name, full name, or email address.  The easiest approach is to ask each team member what their Github user ID is and then type this into the box to invite them to join the organization.

This will send an email invitation telling each member how to join the organization.  They should follow the instructions, clicking on the “To join” link.  Once you have finished inviting members, click the Finish button.

Step 4: Creating repositories

While you are waiting for your members to join the organization, you can go ahead and create one or more repositories.  A repository is a collection of source code along with issue management tools and a wiki.

If you have just created the organization, you will be taken to a page that has a +New repository button on it.  If you have logged in to your individual account, you can get to the organization page using the pull-down menu at the top right and selecting Your profile.  On the left side of this page will be an Organizations section, from which you can select the organization you created.

Either way, you use the +Repository button to start a new project.

You need to give the project a name.  It can be the same name as the organization or you can make different projects based on roles (marketing, development, etc.).  Multiple projects can be created within an organization as needed.

If you selected the open-source plan, you will need to either select a Public project or pay to upgrade the organization.

You probably want to check the Initialize this repository with a README check-box so that you and your members will be able to clone the repository and start working on it right away.

You don’t actually need to clone the repository to use it to manage a project.  You can just start creating and assigning issues and can use the Wiki to organize your ideas into documentation.

There is a separate post on using Git to manage source code.

Step 5: Managing permissions

Once members have accepted your invitations to join the organization, you can control their access to repositories and to the control of the organization itself.  You’ll need to determine who is an Owner and is able to control the whole organization; this is a typical ease-of-use vs. ease-of-abuse tradeoff.  Organizers can change the plan (which can cause additional charges to appear on the account), so you may initially want only the creator of the organization to be an Owner.

To control default member permissions, click on the organization name in the upper left of any Github window and then click on the Settings gear.  Then click on Member privileges.  You can set whether members can create new repositories and the default permission for members on all repositories.  For example, you probably want all team members to have Write access to repositories by default.

To control individual member permissions, click on the organization name in the upper left of any Github window and then click on the member in the People list.  Members will have default access to repositories initially; this can be changed on a repository-by-repository basis on the right.

The Role of the member can be changed from Member to Owner, giving them full access to all settings (including the ability to change other members’ permissions).

There are many more permissions and options that can be set, see the menus and online documentation for more info.