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.
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.
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
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.
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.