| 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 |