| uploadRosterStudents(Long, MultipartFile) |   | 100% |   | 100% | 0 | 2 | 0 | 17 | 0 | 1 | 
| upsertStudent(RosterStudent, Course) |   | 100% |   | 100% | 0 | 3 | 0 | 20 | 0 | 1 | 
| updateRosterStudent(Long, String, String, String) |   | 100% |   | 100% | 0 | 3 | 0 | 14 | 0 | 1 | 
| linkGitHub(Long) |   | 100% |   | 100% | 0 | 4 | 0 | 11 | 0 | 1 | 
| updateCourseMembership(Long) |   | 100% |   | 100% | 0 | 3 | 0 | 9 | 0 | 1 | 
| postRosterStudent(String, String, String, String, Long) |   | 100% |  | n/a | 0 | 1 | 0 | 13 | 0 | 1 | 
| deleteRosterStudentById(Long) |   | 100% |  | n/a | 0 | 1 | 0 | 5 | 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$2(Long) |   | 100% |  | n/a | 0 | 1 | 0 | 1 | 0 | 1 | 
| lambda$deleteRosterStudentById$6(Long) |   | 100% |  | n/a | 0 | 1 | 0 | 1 | 0 | 1 | 
| lambda$updateRosterStudent$5(Long) |   | 100% |  | n/a | 0 | 1 | 0 | 1 | 0 | 1 | 
| lambda$linkGitHub$4(Long) |   | 100% |  | n/a | 0 | 1 | 0 | 1 | 0 | 1 | 
| lambda$updateCourseMembership$3(Long) |   | 100% |  | n/a | 0 | 1 | 0 | 1 | 0 | 1 | 
| lambda$rosterStudentForCourse$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 |