How to set up GitHub organizations for clubs

For many universities and colleges, there are many technical clubs that students can join. Some clubs focus on programming or using programming for collaborative projects. For anything involving code, clubs usually turn to GitHub. GitHub has become the standard for open source project hosting by thousands of projects in the world. GitHub organizations are the tool GitHub provides to allow someone to create a team of people for working on projects. Organizations can have many repositories and smaller teams inside of them. When getting started with GitHub, there is a method to the madness, and there are ways you can have an ordered organization instead of keeping it messy. Here’s how you do it.

Teams for purpose, teams for tracking

Team structure and designation are some of the most important ways to use organizations effectively. Since GitHub revamped teams, they are an effective way to categorize members and to assign privileges. You can decide who can create repositories, who can push code to what repositories, or who has admin rights on projects.

You should create teams that have a purpose and will work with real repositories. For example, if your club has various committees, you should create a team for each committee. Then, you can give each committee privileges to their own repositories and leave it to them to manage. Being smart with what teams you create is important. Teams with a purpose should exist to carry out certain tasks within the organization. Equip them with the means to do so.

It’s also helpful to create teams for tracking. In a university setting, students will graduate in a certain year and then they’ll be gone. For university clubs using GitHub organizations, create teams for every graduating class, staff and faculty, and alumni (e.g. “Class of 2019, Class of 2020, University staff, Graduated members, etc.). While it may seem trivial with a few people in the beginning, it is useful as the organization grows. If someone wonders why someone is part of a repository or if they are still participating in the club or organization, it is easy to see whether the student is still on campus or whether they are a graduated alumnus or alumna.

Use organization for on-boarding

Organizations are a powerful tool for bringing new people into your club or group. The moment someone receives an email inviting them to be a member of the GitHub organization, it holds a certain weight. “Wow, I’m officially a part of this thing!” It’s a great way to create an inclusive environment and enable new contributors to feel like they are a part of the team.

Having a team for newcomers or new recruits is helpful to have in place beforehand. The group doesn’t have any real permissions in the organization, but it is a temporary holding ground for new members while they figure out their position in the club. But this way, they get to be included in the member list and show off your organization’s logo in their profile if they choose.

Publicize your membership on GitHub

If someone is in your organization, make sure you encourage them to show it off! By default, GitHub sets the team member visibility to private. Unless a member of the organization sets themselves as public, they won’t appear as a part of the organization to visitors.

Publicize a GitHub membership

“People” page of an organization – this is where you publicize a GitHub membership

Publicizing your membership is an underestimated step in bringing new contributors in. It’s even helpful for older members too. By publicizing memberships, you are giving faces and real people to characterize your organization. If someone finds your organization in a search or in a link, it looks better to have rows of people associated with the group. The alternative of a team with what looks like no members implies your club is inactive. It can also make your club look smaller than it is. Additionally, individual team members also get to show off your organization on their individual profiles. This is helpful for anyone visiting their profile for activities or programming experience. For university students, this is helpful for applying for co-ops or internships.

To make a membership visible, the organization member has to go to the “People” page of the organization. On the page, next to their name, there is an option for “Public” or “Private” in a drop-down menu. Change it to “Public”.

Consider repository for tasks

The FOSS@MAGIC

The [email protected] “family dinner”, organized with an issue tracker

While not essential, a repository for real-life tasks or issues in a club can be a helpful planning tool. It also makes it easy for people to see what the club or group is working on. This promotes the idea of transparent and open leadership. You can use labels to tag issues for specific types of work or committees. Milestones are useful for deadlines or goals the group is working towards. The new Projects feature may also be useful in a repository for real-life task management.

For an example of a repository like this, you can see the FOSSRIT/fossbox-tasks repository on GitHub. We even planned a dinner on GitHub!

Go forth and conquer!

Congratulations! You now have some basic knowledge and ideas on how to effectively use GitHub organizations for a club or small team. While this guide is not completely thorough, it helps give some starting points to consider when you’re setting up your organization for the first time. It’s also never too late to make changes later, if your organization is already formed.

If you have questions, comments, or feedback, I’d love to hear about it! Feel free to leave a comment below.

3 Comments

  1. hi ! i know nothing about programming but i am interested in a program for learning chinese aimed to French native speakers. My question is: how to create a team on Github ?
    Thanks for answering

Leave a Reply

%d bloggers like this: