Use of GitHub Classroom requires many private repos?

I’ve been teaching with GitHub for a couple years now, and would love to use the model provided here with GitHub Classroom.

However, it seems to me that it would require creating many repos (one for each module, for each student, for each course).

We wish to keep these repos private, however, and do not have unlimited private repos (unfortunately the budget for our State University is quite restricted).

Am I missing something, or would I be unable to use GitHub Classroom and keep by my starter repos and the students’ assignment repos private (without many more privates)?

@rgdonohue really excited you are using Classroom!

You can request a discount for your organization here: and it won’t cost you or your university any :money_with_wings:

Great, thank you! Am I thinking about this correctly though for the # of repos I’d need?

For example, 1 class has 10 weekly modules, each module/assignment would be it’s own “starter code” repo. Then, a new repo would be imported for each student (x15) for each of these. 10 x 15 + 10 = 160.

And then the same for the other course? So a total of 320 private repos? Is this okay to request?

Yup totally fine!

Rich, one thing I realized early on was to package all of the assignments up into 1 repo. My repo structure largely looks like the below. Another significant benefit is allowing accelerated students the ability to work ahead.

cp1-exercises (results in cp1-exercises-username once accepted)
  -- assignments
  ---- unit-1
  ---- unit-2
  ---- unit-3
  -- unit-tests
  ---- unit-1
  ---- unit-2
  ---- unit-3
1 Like

Thanks for the response.

That makes sense if the assignments are all ready to go from the start, though? I find myself updating lessons/labs 2 weeks out, and prefer to roll them out as such to keep the students together for discussion, etc.

One issue I’m anticipating is what happens when I need to update/modify a starter repo once all the students have accepted.

An interesting question I’m also keen to know the answer to, I do not have much experience with GitHub but deliver a vocational programme and in a similar manner may wish to release new content periodically.

It may be better to have a primary repository on which all students are collaborators (read/clone/pull only) with the ‘lesson’ content, and then the individual repos for specific lab assignments. Then you can simply update the primary repo when needed, and students can access the updated content and/or Sync with their local copy.

@rgdonohue have you tried the solution offered in this thread?

1 Like

This is good to know. I’m working to set up a new classroom for Fall and definitely did not request enough repositories.

I have 75 students and multiple labs so it’s going to be a huge number :wink: