Diese Seite erklärt, wie die Noten aus Classroom 50 automatisch ins Moodle-Notenbuch kommen. Der Übertrag läuft nachts, du musst nichts von Hand starten.
moodle-sync.yaml ist BZZ-eigen und wird nicht von Classroom50
mitgeliefert. Du kopierst sie einmal pro Config-Repo von Hand hinein — die
Vorlage liegt im Repository BZZ-Commons/pygrader50
im Ordner classroom50/.
classroom50 in deiner GitHub-Organisation, z.B. https://github.com/m320-ix25/classroom50.moodle-sync.yaml nach .github/workflows/moodle-sync.yaml.Den Dateinamen so lassen und keine bestehende Workflow-Datei dafür verwenden: Classroom50 überschreibt seine eigenen Workflows bei einem Update.
Die Datei gilt für alle Klassen im Repo — eine Kopie genügt, auch bei mehreren Klassenordnern.
Ebenfalls im Repo classroom50, unter Settings → Secrets and variables →
Actions:
| Art | Name | Wert |
|---|---|---|
| Secret | MOODLE_TOKEN | Webservice-Token aus Moodle |
| Variable | MOODLE_URL | https://moodle.bzz.ch |
Oder im Terminal:
gh secret set MOODLE_TOKEN --repo <ORG>/classroom50 gh variable set MOODLE_URL --repo <ORG>/classroom50 --body "https://moodle.bzz.ch"
Der Token gehört nur ins classroom50-Repo, nie in ein Repo der
Lernenden — damit lassen sich Noten für beliebige Personen setzen.
Damit eine Note ankommt, muss die Person in Moodle gefunden werden:
m323-lu01-a02-imperativer-ggt.Der Moodle-Benutzername spielt keine Rolle — gesucht wird nur im Profilfeld.
Im Repo classroom50 unter Actions → Moodle Sync → Run workflow,
Häkchen bei dry_run (zeigt nur an, schreibt nichts):
Moodle-Übertrag: 2 Abgaben [dry-run] <SLUG> / anna: 5/7 [dry-run] <SLUG> / bruno: 7/7 übertragen: 2 | unverändert: 0 | fehlgeschlagen: 0
Sieht das gut aus, dasselbe ohne dry_run laufen lassen. Danach ist die
Einrichtung fertig.
Zum Testen einen echten Login einer lernenden Person nehmen. Der eigene Lehrer-Account ist im Kurs meist kein Teilnehmer — der Test scheitert dann, obwohl alles richtig eingerichtet ist.
| Wann | Was |
|---|---|
| nachts | Classroom 50 sammelt alle Abgaben ein |
| 04:57 | moodle-sync trägt sie ins Moodle-Notenbuch ein |
Übertragen wird pro Person und Aufgabe die neueste Abgabe, zusammen mit Punktzahl, Feedback und Link zur Abgabe. Schon Übertragenes wird übersprungen — ausser die Punktzahl hat sich geändert.
Zwischendurch von Hand: Actions → Moodle Sync → Run workflow. Der Schalter
force sendet auch schon Übertragenes nochmals.
| Meldung / Symptom | Das hilft |
|---|---|
| kein Eintrag Moodle Sync unter Actions | Schritt 1 nachholen |
No Moodle user found with username „X“ | Person trägt ihren GitHub-Login im Moodle-Profil nach |
No matching assignment found | Aktivitätsname stimmt nicht oder Person ist nicht im Kurs — beides prüfen |
keine XML-Antwort erhalten | MOODLE_URL oder Token falsch |
| Note kommt nicht an, Log sagt „unverändert„ | nochmals auslösen, diesmal mit force |
| Nachtlauf jede Nacht rot, immer dieselbe Person | alter Eintrag in scores.json, siehe Betrieb |