Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| howto:git:classroom50repo [2026/08/14 07:08] – angelegt msuter | howto:git:classroom50repo [2026/08/14 11:12] (aktuell) – kmaurizi | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| - | ====== | + | ====== |
| - | <WRAP center round tip 60%> | + | |
| - | In der GitHub-Organisation ist ein Repository " | + | |
| - | Pro Classroom besteht ein Unterordner mit dem Namen des Classrooms. | + | |
| - | </ | + | |
| - | ===== Autograding ===== | + | Jede Klasse hat ein privates |
| - | ==== Classroom50-Repository | + | **einzige** Konfigurationsquelle des Klassenzimmers: |
| + | Autograder, Resultate und die Workflows liegen dort. Angelegt wird es von | ||
| + | '' | ||
| - | Unter '' | + | ===== Aufbau ===== |
| - | Ersetze diese Action durch unsere Action für '' | + | |
| - | < | + | <code> |
| - | name: Workflow for BZZ Programming Lessons using Github-Classroom and Moodle | + | classroom50/ |
| + | ├── .github/ | ||
| + | │ | ||
| + | │ | ||
| + | │ | ||
| + | │ | ||
| + | └── < | ||
| + | | ||
| + | ├── assignments.json | ||
| + | ├── roster.csv | ||
| + | ├── autograder.py | ||
| + | ├── autograders/< | ||
| + | ├── scores.json | ||
| + | └── moodle-state.json | ||
| + | </ | ||
| - | on: [push, fork] | + | Ein Repository kann **mehrere** Klassenzimmer enthalten — je einen Ordner. Der |
| + | Ordnername ist der Kurzname aus '' | ||
| + | Organisationsnamen entsprechen. | ||
| - | permissions: | + | ===== Die Pages-Site ===== |
| - | checks: write | + | |
| - | issues: write | + | |
| - | actions: read | + | |
| - | contents: read | + | |
| - | jobs: | + | '' |
| - | grading: | + | '' |
| - | if: ${{ !contains(github.event.head_commit.message, | + | Abgabe: |
| - | uses: BZZ-Commons/pygrader/.github/workflows/py_autograding.yml@main | + | |
| - | | + | |
| - | </ | + | |
| - | ==== Template-Repo ==== | + | ^ Datei ^ URL ^ |
| - | <WRAP center round tip 60%> | + | | Klassen-Default | '' |
| - | Die Template-Repositories sind die Vorlagen, welche für die Lernenden geklont werden. | + | | Bewertungs-Bundle | '' |
| - | Zum Beispiel [[https:// | + | | Aufgabenliste | '' |
| + | |||
| + | <WRAP center round important 90%> | ||
| + | Das Klassen-Segment im Pfad ist Pflicht. '' | ||
| + | ''< | ||
| </ | </ | ||
| - | In den einzelnen Template-Repositories | + | ===== Wie eine Abgabe bewertet |
| - | Beim Erstellen | + | |
| + | Im Studi-Repo liegt '' | ||
| + | beim Anlegen | ||
| + | Workflow des Config-Repos auf. Der Lauf wird übersprungen, wenn die | ||
| + | Commit-Message | ||
| + | |||
| + | | ||
| + | - Der '' | ||
| + | - '' | ||
| + | - An der BZZ greift der dritte Punkt: ''< | ||
| + | - '' | ||
| + | |||
| + | <WRAP center round tip 90%> | ||
| + | Der alte Weg über '' | ||
| + | abgelöst. Wer ihn noch in einem Repo findet, siehe | ||
| + | [[.: | ||
| + | </ | ||
| + | |||
| + | ===== Bewertungs-Konfiguration ===== | ||
| + | |||
| + | Die drei Dateien '' | ||
| + | entweder | ||
| + | GitHub-Classroom-Zeit) oder manipulationssicher als Bundle im Config-Repo unter | ||
| + | ''< | ||
| + | |||
| + | Details und Vorrangregeln: | ||
| + | |||
| + | ===== Sicherheit ===== | ||
| + | |||
| + | Der Moodle-Token liegt **nur** hier, nicht in der Studi-Organisation. Der | ||
| + | Bewertungs-Job bekommt gar keine Secrets: | ||
| + | in seinem '' | ||
| + | **keine** Isolationsgrenze gegen selbst hinzugefügte Studi-Workflows — alles | ||
| + | Vertrauliche gehört deshalb ins Config-Repo. | ||
| + | |||
| + | ===== Weiter ===== | ||
| + | |||
| + | * [[.: | ||
| + | * [[.: | ||
| + | * [[.: | ||
| + | * [[.: | ||
| - | === Konfiguration der Bewertung === | ||
| - | Die Einstellungen für Unittests, Linter, ... werden im Ordner '' | ||
| - | Für ein Python-Programm sind das typischerweise: | ||
| - | * '' | ||
| - | * '' | ||
| - | * '' | ||