How to build your code club on GitHub

327 readers like this.
GitHub logo with navy background

From GitHub

For anything involving code, programming clubs often turn to GitHub, which has become the standard for open source project hosting for thousands of projects all over the world. GitHub organizations are for creating teams of people working on projects; organizations can have many repositories and smaller teams inside of them. Here's how you get started.

Creating teams

Team structure and designation is one of the most important ways to use organizations effectively. GitHub revamped their team permissions, an effective way to categorize members and to assign privileges. Decide who can create repositories, who can push code to what repositories, and who has admin rights on projects.

You should create teams that have a purpose and work with real repositories. For example, if your club has various committees, you could create a team for each committee. Then give each committee privileges to their own repository and leave it to them to manage. Be smart with what teams you create; they should each have a specific purpose and be equipped with the means to do their tasks.

It's also helpful to create teams for tracking. In a university setting, students will graduate and then they'll be gone. You can 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, and it is easy to see whether the student is still on campus or whether they are a graduated alumnus or alumna.

On-boarding

Organizations are powerful tools 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. 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. They get to be included in the member list and show off your organization's logo in their profile if they choose.

Publicize your club 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.

Publicizing your membership is an underestimated step in bringing in new contributors. It's even helpful for older members. 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. A team that appears to have few member implies that your club is inactive, and makes it look smaller than it is. Additionally, individual team members 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.

Consider a repository for tasks

Dinner planned on GitHub.

The FOSS@MAGIC “family dinner”, organized with an issue tracker on GitHub

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 gives some starting points to consider when you're setting up your organization for the first time. It's never too late to make changes 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.

The original version of this post is on Justin Flory's blog.

Tags
The photograph is a headshot. Pictured is a white man with a beard looking upward.
Justin W. Flory is a creative maker. He is best known as an Open Source contributor and Free Culture advocate originally from the United States. Justin has participated in numerous Open Source communities and led different initiatives to build sustainable software and communities for over ten years.

2 Comments

Hello!

Shouldn't opensource.com endorse free/open software first?
Even if github is hosting free/open source projects, doesn't make it less proprietary.
There are some free (as in speech) options for do it, including my project at https://rocketgit.com
It is AGPL!

Thank you!

Hi Catalin, thanks for sharing this point. You are right that GitHub isn't open source itself, and there are plenty of other platforms for hosting git repositories. This article targets GitHub specifically because it is the largest platform for hosting open source projects, and there are many communities that already live there that could take advantage of some of the advice covered in this article. I agree that we should always champion open source software wherever possible, but in this case, this article was focused on improving the tooling of communities or small student clubs or organizations on GitHub.

Additionally, a really cool git forge I recommend checking out is Pagure, if you haven't heard of it already. :) https://fedoramagazine.org/pagure-diy-git-project-hosting/

In reply to by Catalin(ux) M. BOIE (not verified)

Creative Commons LicenseThis work is licensed under a Creative Commons Attribution-Share Alike 4.0 International License.