We tried using github classroom this semester as a tool for assignements for a devops class we are teaching.
Here is some critical feedback about our experience and why we won’t be able to use it again in the future.
Public vs Private Repos : I understand how public repo and open source is a big focus for github. But in the context of a classroom, privacy is important to avoid cheating. private repos are almost a de facto choice, and the usual github restrictions to private repos makes classroom really hard to use.
Branch policy : Students who create a private repo in classroom for their assignments don’t have access to branch protection. We can’t teach them branch protection in relation to pull requests and not pushing on the main branch. Github support recommended changing the Organization type so that these restrictions would be lifted, but unlike verifying yourself as a legitimate student/TA , verifying the organization takes alot more paperwork and must be renewed every semester for every organization.
External services uses organization for credits, making teaching alot more expensive : ie. Travis-CI integration is nearly impossible in the context of a github classroom because the credits are billed to the github organization instead of the individual repos. This means that although each student team would have enough credits on their own, github classroom’s organization forces them to use the same limited resource. This broke all of our student’s CI/CD pipelines one day before they had to turn in their work, paralyzing everyone.
Proposed changes : Remove the requirement for github classroom student repos to be under an organization.
This means student status can be applied normally to individual repos, and these repos can be used with other services as their own independent entity.