Mass organization invites & assignment dissemination


(Jacob Fiksel) #1

Hello,

I will be using GitHub Classroom this Fall, and was wondering what the best workflow is for adding students to the organization and then disseminating each assignment. This current class will only be 25 people, but I would prefer to not have to manually enter in each of their GitHub usernames to the Organization invite list, especially if I were to expand GitHub Classroom to a larger course in the future.

In addition, when you create new assignments, how do you disseminate the link to students? Is there a way to do this purely through GitHub, or do you use a separate email list serve (perhaps one provided by the school) to send out the assignment link?

Thanks,
Jacob


(Joel Ross) #2

The thing to note about GitHub Classroom is that you are not required to add students to the organization at all. Whenever a student accepts assignment, they are provided with a repository for that assignment to which they have read/write access (and admin if you wish)—effectively added as guests. They do not need to be members of the organization to view and utilize these repos. For my classes (40 to 150 students) we don’t add them to the organization, we just require them to sign up for GitHub and then follow the link to create the assignment. Students are then required to “submit” a link back to their (completed) repo which we use for grading (via our LMS system)–or a link to a pull request from their development branches for more advanced courses.

I just include the Classroom assignment link in the LMS assignment listing. See https://canvas.uw.edu/courses/1139975/assignments/3656410 as an example.


(Jacob Fiksel) #3

Interesting. I think we would prefer to have all of the students in the organization, since the assignment repositories will be created inside of the organization, making it easier for us to pull the assignments down to grade locally and then push back. Otherwise I believe this would require writing a more complex script to go into each student’s github and pull the required repository.


(Joel Ross) #4

Fair enough. My less-than-elegant solution is to make a simple “assignment 0” that each student accepts through GitHub classroom, whether or not this has any further submission. This will produce a repository of the format “organization/assignment-githubuser” for each user. Once you have that, you can use a simple script and the Github API (https://developer.github.com/v3/repos/#list-organization-repositories; https://developer.github.com/v3/orgs/members/#add-or-update-organization-membership) to get a list of usernames from those assignment and then mass add them to the organization. I wish I had a script available for you, but we haven’t needed that kind of automation ourselves (yet).

You could also have then submit their github username via a simple form survey and, then even automate adding the student to the repo from that. See http://joshldavis.com/2014/06/30/github-university-follow-up/ for an older example of how you might set this up.


(Vanessa) #5

You could also have then submit their github username via a simple form survey and, then even automate adding the student to the repo from that. See http://joshldavis.com/2014/06/30/github-university-follow-up/ for an older example of how you might set this up.

@jfiksel, this is the solution I usually recommend.

If you have additional feedback or input on adding a student roster, please pipe in on the issue:

https://github.com/education/classroom/issues/849


(Jose M Vidal) #6

Here is another script I found for adding people to an org from a csv file https://github.com/bertvv/github-org-mgmt

It works for me.