github-education-resources / classroom

GitHub Classroom automates repository creation and access control, making it easy for teachers to distribute starter code and collect assignments on GitHub.
https://classroom.github.com
1.34k stars 570 forks source link

Modify permissions to repositories after deadline #2253

Open yves-chevallier opened 4 years ago

yves-chevallier commented 4 years ago

After a deadline has been submitted I noticed the permissions to the students repositories are not changed. It means the student can still commit anything to its repository.

My ideal workflow would be to have access to this repository to do the review and commit my remarks directly into students repositories.

EricPickup commented 4 years ago

Great idea! I could see us doing this two ways:

If you wanted to commit your remarks directly to the repo then the best approach would be that first option since you couldn't commit if the repo is archived.

@d12 is there any reason why haven't done this already? I'm wondering since we currently report the last commit sha before the deadline is reached, rather than just disabling the repository or removing the students from collaborators. Seems like this option would be more clean/straight-forward but I may be wrong.

yves-chevallier commented 4 years ago

Thanks for your message :)

I have downloaded the code to attempt to implement this feature, but I would certainly need a lot of time to first understand the architecture of Classroom then to familiarize myself with Ruby (I know Perl), and then implement this feature...

Regarding the feature, I would complete your list with (b):

a. Remove students from collaborators on the repository b. Change students repository permissions from write to read c. Archive the repository

d12 commented 4 years ago

Hey! The reason we designed deadlines like this is because teachers often want students to be able to continue working after the deadline for their own interest, or for extra credit. The teacher has an image of what was done by the deadline, but we don't want to stop students from completing work if they want to.

That said, there's definitely flows where students working after the deadline can cause issues, like @yves-chevallier 's case. We could add an option to disallow work after the deadline, but I'd like it to not be the default.

There's a number of ways to do this depending on what the goal is. For private assignment repos, removing them as collaborator removes their read permissions and they wouldn't be able to see feedback. Also archiving the repo means teachers can't give feedback. We would possibly do this by reducing students permission from write to read.

d12 commented 4 years ago

We likely won't be able to get to this work in the near future, so if you want to take a stab, please do! My only ask is that we keep this an optional feature as a toggle in the assignment settings.