Automating new semester/quarter work?

Hi everyone,

After having created a couple of classrooms (with 1 assignment each, so far) it looks like this is a quick checklist of what one would need to do to set everything up:

  1. Create a new organization
  2. Use edu benefits so that org can create private repos
  3. Create a new, private repo for the lesson
    3.1 in settings, change this to be a template repo
  4. Clone same repo from last quarter, then use git remote set-url origin to change upstream to the new repo
  5. Push the code to the new repo
  6. Create a new classroom in GHclassroom
  7. Link it to the new org
  8. Create your first assignment, using the new repo you just created
    8.1 copy the acceptance link, paste it into canvas/your webpage/etc
  9. Link the GHclassroom to Canvas by navigating to the course in Canvas, then Settings/Apps/App setup info
  10. Add GitHub Classroom by URL. If it’s already there remove/delete it and re add (changing the info for an existing integration didn’t seem to do anything,)
  11. Click on the home page for the canvas course. You should see GitHub Classroom listed. Click on that to go GitHub Classroom and then import the students (I did it by name)

Would anyone have any ideas about how best to automate as much of this as possible? For example, could one use curl and/or Python scripts to automate creating a new organization in GitHub? Or requesting private repos for that organization once it’s been created?

Any ideas and/or leads would be greatly appreciated :slight_smile:


I would begin by thinking about what you will need to do the next time you teach these courses. Some of the steps above might only apply to the initial course offering, and I wouldn’t worry about automating those.

I have separate organizations for the assignments and the actual classroom. The organization for assignments is a “regular” GitHub repository and doesn’t need any special permissions. Once the organization for the classroom is approved, I think that approval is permanent, so I just re-use it from semester to semester.

Do you use (mostly) the same assignments from semester to semester? If so, then your assignment repository is already set up. Just make the desired tweaks and push.

1 Like

That’s a good idea, actually - reusing the classroom instead of creating new ones.

How do you remove the existing students from the classroom?
I don’t want to have to filter out previous terms’ students every time I go to grade something

The most automatic way I can think is to delete/archive all students’ work at the end of system by using the program at

You don’t need to repeatly create organizition, classroom, or even assignment link.