feat(web): course repo overview — which repos are actually generated (Milestone F5e, Z4)#126
Merged
Conversation
…(Milestone F5e, Z4)
A whole-course view of what has been generated: per assignment, how many of its
target repos exist in GitLab and who is missing.
- gitlab.ExistingRepoNames lists an assignment group's projects in one paginated
call (not a GetProject per student), so the overview costs one call per
assignment, not students×assignments.
- app.CourseRepoOverview resolves each assignment concurrently, matches RepoTargets
against the existing set, and returns per-assignment {targets, existing, repos[for,
exists], note}. A missing group (never generated) or an abstract/unresolvable
assignment becomes a note rather than an error, so one gap does not fail the view.
Needs the caller's stored GitLab token.
- GraphQL courseRepoOverview(course): [AssignmentRepos]. The pure matcher is unit
tested; the GitLab listing is exercised live/by the report path.
GUI page follows in the glabs.gui counterpart.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Was
Kurs-weite Übersicht des tatsächlich Generierten: pro Assignment, wie viele Ziel-Repos in GitLab existieren und wer fehlt.
Änderungen
gitlab.ExistingRepoNames: listet die Projekte einer Assignment-Gruppe in einem paginierten Call (nicht GetProject pro Studi) → Übersicht kostet 1 Call/Assignment statt Studis×Assignments.app.CourseRepoOverview: löst jedes Assignment konkurrent auf, matchtRepoTargetsgegen die existierenden Namen, liefert pro Assignment{targets, existing, repos[for,exists], note}. Fehlende Gruppe (nie generiert) oder abstrakt/nicht-auflösbar →notestatt Fehler (eine Lücke bricht die Übersicht nicht). Braucht den hinterlegten GitLab-Token.courseRepoOverview(course): [AssignmentRepos]. Der reine Matcher ist unit-getestet; das GitLab-Listing läuft live/über den Report-Pfad.GUI-Seite folgt im glabs.gui-Gegenstück.
Verifikation
go build/vet (inkl. -tags=integration)/test/golangci-lint— grün.🤖 Generated with Claude Code