Where possible, each commit should be assigned to a student
Current Behavior
Some commits are not assigned to a roster student. This is because the current code only matches based on github id, but sometimes when students make commits, their git client may be misconfigured. In these cases, we can do a second round of matching based on email address, and we may be able to get some of these commits assigned properly.
Steps to Reproduce
For an example, look at ucsb-cs156-f20, at commits where the include column is FALSE, but doc only, and Merge commit is also FALSE, that is, where the only reason the commits is excluded is because the roster student is nil.
In many of these cases, there is a name or an email address that we could use to match the commit.
The work around suggested here is to:
Build a screen where we can see a list of names associated with orphan commits.
For each of these names, show a count of the orphan commits.
Make that table sortable, so that we can sort, descending, but the number of orphan commits.
For each of those names, have a drop down menu with the roster students. Be able to select the roster student with which these orphan commits should be associated (plus a "none" option). Associating with an option other than "none" adds an entry in a name-to-roster-student table. Associating with "none" deletes that entry from the name-to-roster-student table.
Do all of the same things for email address.
AC
[ ] There is a way to list orphan commits by name
[ ] There is a way to list orphan commits by email address
[ ] For each course, there is an associated table of "name to roster student mappings" and a table of "email to roster student mappings". These can be used by the code that assigns roster students as a fallback, when the ordinary way of doing mappings (via GitHub id) fails.
[ ] There is a way to list these mappings, create new ones, and delete existing ones.
[ ] Creating a new mapping causes all commits that match to be assigned to the indicated roster student (resulting in a fewer orphan commits being listed.)
Expected Behavior
Where possible, each commit should be assigned to a student
Current Behavior
Some commits are not assigned to a roster student. This is because the current code only matches based on github id, but sometimes when students make commits, their git client may be misconfigured. In these cases, we can do a second round of matching based on email address, and we may be able to get some of these commits assigned properly.
Steps to Reproduce
For an example, look at ucsb-cs156-f20, at commits where the include column is FALSE, but doc only, and Merge commit is also FALSE, that is, where the only reason the commits is excluded is because the roster student is nil.
In many of these cases, there is a name or an email address that we could use to match the commit.
The work around suggested here is to:
AC