1. Úvod
Tímový softvérový projekt nemožno posúdiť iba podľa toho, či výsledný program funguje. Dôležitý je aj postup: rozdelenie práce na úlohy, oddelenie zmien vo vetvách, automatizované testovanie, revízia kódu a udržiavanie hlavnej vetvy v použiteľnom stave. Tieto návyky tvoria praktickú časť DevOps a študent ich potrebuje opakovane použiť na konkrétnych zmenách.
Predmety Základy softvérového inžinierstva a Základy DevOps na KPI FEI TUKE používajú pri tímových zadaniach GitLab. Dôkaz o splnení jednej úlohy však nie je na jednom mieste. Časť je v probléme, časť v opise žiadosti o zlúčenie, ďalšia v diskusii, histórii zmien a vo výsledku procesu CI/CD.
Pri ručnej kontrole preto vyučujúci opakovane otvára projekty a spája údaje z viacerých obrazoviek. Počet odovzdaní sám nepreukazuje prácu vo vetve, reakciu na pripomienky ani revíziu zmien spolužiakov. Úspešný proces CI/CD zase nepreukazuje, že zmena obsahovala nové testy. Údaje existujú, no chýba pohľad usporiadaný podľa otázok, ktoré vyučujúci skutočne kladie.
GitPulse má tieto procesné stopy predspracovať a zachovať pri každom výsledku odkaz na pôvodný artefakt. Nemá nahradiť odborný úsudok vyučujúceho ani automaticky rozhodovať o známke.
1.1 Motivácia
Základnou motiváciou je rozdiel medzi údajmi, ktoré GitLab už uchováva, a úsilím potrebným na ich pedagogickú interpretáciu. Webhooky oznamujú vybrané zmeny a podrobný aktuálny stav možno doplniť cez REST API.
Očakávané prínosy návrhu sú:
- menej rutinnej kontroly pri jednoznačných otázkach s dátovým základom;
- včasnejšia spätná väzba ešte pred uzavretím úlohy;
- jednotný výpočet technických podmienok s viditeľnými obmedzeniami;
- prechod od kurzu ku skupine, projektu a študentovi bez straty odkazu na GitLab;
- bezpečné precvičenie konfliktov, Dockerfile a zlyhaní CI/CD v oddelených moduloch.
Farebný stav bez vysvetlenia by iba nahradil jednu nepriehľadnú kontrolu druhou. Preto musí používateľ vidieť dôvod výsledku a vedieť ho ručne overiť.
1.2 Formulácia úlohy
Cieľom diplomovej práce je navrhnúť a overiť nástroje podporujúce výučbu základov DevOps nad tímovými projektmi v GitLabe. Čiastkové úlohy sú:
- analyzovať pracovné postupy predmetov a oddeliť strojovo overiteľné podmienky od odborného posúdenia;
- porovnať existujúce systémy hodnotenia, analýzy repozitárov a kontroly zmien;
- overiť údaje dostupné vo webhookoch a REST API GitLab;
- navrhnúť architektúru, dátový tok a bezpečnostné hranice platformy;
- vytvoriť prototyp pre import kurzu, synchronizáciu projektov, procesné kontroly a prehľad výsledkov;
- pripraviť voliteľné cvičenia pre konflikt, Dockerfile a zlyhanie CI/CD;
- navrhnúť neskoršie vyhodnotenie technickej správnosti a pedagogického účinku.
Aktuálne odovzdanie sa končí návrhom a funkčným prototypom. Neobsahuje tvrdenia o úspore času, zlepšení študijných výsledkov ani úspechu nasadenia vo výučbe. Takéto závery budú možné až po zbere údajov a overení s cieľovou skupinou.