Jdi na navigaci

Hromadné vytváření repozitářů

Nástroj pro hromadné vytváření repozitářů (Git Class Repositories) je určený všem vyučujícím. Umožňuje hromadně vytvářet studentské repozitáře v rámci výuky libovolného předmětu.

Mezi klíčové možnosti použití však patří:

  • Vytvoření repozitáře pro studenty dle předmětu v semestru, dle paralelky nebo specifikováním konkrétních uživatelů.
  • Určit zdrojový projekt, ze kterého budou studentské repozitáře vycházet.
  • Synchronizace libovolné větve ze specifického repozitáře do jednotlivých studentských repozitářů.
    • např. pro zadávání úkolu apod.
  • a další.

Pro použití není potřeba nic stahovat ani instalovat. Celý proces probíhá v rámci automatizace na fakultním GitLabu.

Prerekvizity

Pro počáteční konfiguraci kontaktujte helpdesk oddělení ICT.

Příklad použití v předmětu BI-PS2

Jedním z předmětů využívajících hromadné vytváření repozitářů je BI-PS2. Ten je na GitLab veden jako skupina. V detailu skupiny se nachází podskupiny a jednotlivé repozitáře:

  • Podskupiny (A) jsou generovány automaticky a obsahují jednotlivé studentské repozitáře.
  • Repozitář (B) s názvem control slouží k nastavení hromadného vytváření repozitářů. Pro běžné uživatele může zůstat skryt.
example 01.en
Obrázek 1. Skupina předmětu BI-PS2 na fakultním GitLab.

Po rozkliknutí podskupiny lze vidět jednotlivé studentské repozitáře.

example 02.en
Obrázek 2. Studentské repozitáře předmětu BI-PS2 na fakultním GitLab.

Uvnitř řídícího repozitáře control se nachází konfigurační soubor student-projects.yml. Jeho podobě se podrobně věnuje ukázkový konfigurační soubor.

Opětovné spuštění

Pipeline pro vytvoření či aktualizaci repozitářů lze spustit i ručně, bez vytváření dalších commitů. To lze využít například v situaci, kdy je potřeba vytvořit repozitáře pro nové studenty, kteří si předmět zapsali později.

V repozitáři control přejděte do CI/CD  Pipelines, stiskněte Run Pipeline a v nabídce vyberte Create pipeline.

Upozornění:

Při prvotním vytvoření se nenastaví správně práva (vždy se nastaví jako interně veřejné). Je potřeba spustit pipeline znovu, další běh je opraví. Jedná se o známý problém git-class-repos#9.