brownfield-team / anacapa-github-linker

A tool for managing students in computer science courses. Deployed at:
https://ucsb-cs-github-linker.herokuapp.com
MIT License
4 stars 6 forks source link

Handle orphan commits (those that aren't being assigned to the right student) #412

Closed pconrad closed 3 years ago

pconrad commented 3 years ago

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:

  1. Build a screen where we can see a list of names associated with orphan commits.
  2. For each of these names, show a count of the orphan commits.
  3. Make that table sortable, so that we can sort, descending, but the number of orphan commits.
  4. 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.
  5. Do all of the same things for email address.

AC