New to the community and wondering the following,
Is there a way to invite users to join my educational github organization in bulk? After having read through the documentation online, I only find instructions on how to manually invite users, on an individual basis.
Thanks very much for your help!
With (non-classroom) github, you can only add users to an org 1 at a time. Still getting acquainted with gh classroom, so not sure if it offers batch-add capability.
In Classroom you can login to your classroom and go to the students link. From there you can add students, import from College Learning Management System, or just import a csv file.
Personally I have just been providing students the links to the individual assignments. I also have them give me their GitHub username. Once an assignment is past due I use the GitHub Classroom Assistant to download all student repositories at once. Only issue is that I then have to match up the GitHub account to the student for posting their grades in the College LMS.
I’m not too sure what your use case is but github classroom is what I use for managing user access to the organization.
If you are familiar with github but not github classroom, the easiest way to think about github classroom is that it is a batch repository creation app. It lets you grant access to your organization, allow students to create repositories under your organization with appropriate initial files and permissions. Before using github classroom I wrote a few bash scripts that will create repos in bulk… but classroom is superior in every way. Highly recommended.
I have used this app to do the following use casses:
Use case 1: creating individual public or private repos, 1 per student under your organization
Use case 2: creating group repos (mulitiple students per repo) under your organization
Use case 3: creating a single private repo for course content under your organization that students can access under your repo.
Use case 1 and 2 are the documented use cases for github classroom. Below is how I do use case 3 which will create a single private repo for course content that all students can access.
The way to do this is to set it up as an group “assignment”. with unlimited number of team members (don’t change default … or you can set it to number of students in your class + 1 … the +1 is for yourself) but only 1 team maximum.
Then before giving invitation link to students, go to the invitation link yourself and create a new team (remember that the repo will be named -). So choose a team name that will work well as the end of the repo name.
This will create the repo and a team for the repo. Switch the team access for the private repo to read (you are admin for the org, so this won’t prevent you from writing to the repo)
Once you have done this, give the students the invite link and have them “join” the assignment team.
This has a few advantages…because when you do this, you will have one single team that the students are in. If you need to do a class group thing, they are all in that one team and you have access to their user ids.
Thanks for your feedback Topher! Much appreciated
This is excellent Catherine! I can’t thank you enough for having taken the time to reply in such detail. Next step, github classroom! Much appreciated, Chris
Thank you John! Classroom appears to be the way forward. Much appreciated
Hello again Catherine!
I had a look at Classroom and it looks great. That said, I am trying to wrap my head around the following. We have several faculties and researchers interested in using the app. As the owner and “primary” admin, I did not anticipate the fact that users wanting to create a classroom would have to be owners of the organization!! I was hoping to be able to open up the app to AD group users associated to Teams and allow users to create classrooms as they wished but not have to make others owners of the app that would give them full admin access to the organization (and all of its config settings). Is my interpretation correct? If yes, any suggestions?
Thanks again so much!
Sorry… its been a while since I logged on so reply is a bit late… I think what you could do, is to create a separate organization for each group. This way you can have separate classroom for them and grant ownership to a specific organization (instead of everyone owning everything). If you use one org… I think would get messy, depending on how they plan to use the application.
I use to give my students only one repo per semester. all assignments go into same repo. Recently I’ve given them a separate repo for each assignment, allowing them to work with different group members…
On any semester, I could end up with 100+ repo for just one class… its a lot. If you share just one org between all your faculty, I think finding things will become a challenge.
Just my thoughts anyways… but ultimately depends on use case.
I had the same problem and I do like the classrooms option. If you are not using classrooms then I created a Python script to do this (we have 180 to sign up each year). It works except for one rate limit issue that GitHub is not clear on (talking to support to see if they can update their documentation). This may be a little involved if you are not handy with running a script, but you can find it here: