| uploadRosterStudents(Long, MultipartFile) |   | 100% |   | 100% | 0 | 2 | 0 | 17 | 0 | 1 | 
| upsertStudent(RosterStudent, Course) |   | 100% |   | 100% | 0 | 3 | 0 | 20 | 0 | 1 | 
| linkGitHub(Long) |   | 100% |   | 100% | 0 | 4 | 0 | 11 | 0 | 1 | 
| updateRosterStudent(Long, String, String, String) |   | 100% |   | 100% | 0 | 3 | 0 | 11 | 0 | 1 | 
| postRosterStudent(String, String, String, String, Long) |   | 100% |   | 100% | 0 | 2 | 0 | 16 | 0 | 1 | 
| updateCourseMembership(Long) |   | 100% |   | 100% | 0 | 3 | 0 | 9 | 0 | 1 | 
| deleteRosterStudent(Long) |   | 100% |  | n/a | 0 | 1 | 0 | 4 | 0 | 1 | 
| fromEgradesCSVRow(String[]) |   | 100% |  | n/a | 0 | 1 | 0 | 6 | 0 | 1 | 
| rosterStudentForCourse(Long) |   | 100% |  | n/a | 0 | 1 | 0 | 3 | 0 | 1 | 
| getAssociatedRosterStudents() |   | 100% |  | n/a | 0 | 1 | 0 | 3 | 0 | 1 | 
| lambda$uploadRosterStudents$4(Long) |   | 100% |  | n/a | 0 | 1 | 0 | 1 | 0 | 1 | 
| lambda$linkGitHub$6(Long) |   | 100% |  | n/a | 0 | 1 | 0 | 1 | 0 | 1 | 
| lambda$updateCourseMembership$5(Long) |   | 100% |  | n/a | 0 | 1 | 0 | 1 | 0 | 1 | 
| lambda$rosterStudentForCourse$3(Long) |   | 100% |  | n/a | 0 | 1 | 0 | 1 | 0 | 1 | 
| lambda$deleteRosterStudent$2(Long) |   | 100% |  | n/a | 0 | 1 | 0 | 1 | 0 | 1 | 
| lambda$updateRosterStudent$1(Long) |   | 100% |  | n/a | 0 | 1 | 0 | 1 | 0 | 1 | 
| lambda$postRosterStudent$0(Long) |   | 100% |  | n/a | 0 | 1 | 0 | 1 | 0 | 1 | 
| static {...} |   | 100% |  | n/a | 0 | 1 | 0 | 1 | 0 | 1 | 
| RosterStudentsController() |   | 100% |  | n/a | 0 | 1 | 0 | 1 | 0 | 1 |