Appearance
CI/CD je místo, kde se pravidla vynucují automaticky, ne domluvou. U tohoto projektu je splněno 6 z 9 kontrol a jde o nejslabší hodnocenou oblast. Všechna tři zjištění míří na práci se závislostmi.
Skóre
| Stav | Počet |
|---|---|
| ✅ OK | 6 |
| 🟥 Není OK | 3 |
Celkově: pipeline hlídá kvalitu vlastního kódu spolehlivě. Lint, statická analýza, testy i coverage běží u každého merge requestu a vynucují prahy kvality. Slabinou je správa cizího kódu, tedy práce se závislostmi.
Co jsme hodnotili
| # | Kontrola | Stav |
|---|---|---|
| 1 | CI/CD při každém merge requestu spouští nástroje pro lint a statickou analýzu kódu a vynucuje splnění definovaných prahů kvality. | ✅ |
| 2 | CI/CD při každém merge requestu spouští automatizované testy a vyhodnocuje test coverage. | ✅ |
| 3 | CI/CD provádí audit licencí použitých závislostí. | ✅ |
| 4 | Deployment je automatizovaný nebo řízený release managementem. | ✅ |
| 5 | Release proces automatizovaně řeší verzování a generování release notes. | ✅ |
| 6 | Selhání pipeline nebo nasazení na větvích určených pro prostředí odešle notifikaci do komunikačního nástroje. | ✅ |
| 7 | CI/CD reportuje zranitelnosti použitých závislostí. | 🟥 |
| 8 | CI/CD automaticky vytváří merge requesty s aktualizacemi závislostí. | 🟥 |
| 9 | CI/CD kontroluje nepoužívané závislosti, soubory a exporty. | 🟥 |
Zjištění
Prahy kvality jsou vynucené
Lint, statická analýza, testy a coverage běží u každého merge requestu a pipeline neprojde, když prahy nejsou splněné. Pro agentní vývoj to znamená, že agent dostane jednoznačné „ne“ a má z čeho se odrazit. Doporučení, které nikdo nevynucuje, agent spolehlivě ignoruje.
Automatizovaný release a notifikace o selhání
Deployment i verzování běží automatizovaně a selhání pipeline se propíše do komunikačního nástroje. Tím se zkracuje doba, po kterou může být rozbitý stav bez povšimnutí.
🟥 Zranitelnosti závislostí se nereportují
Pipeline nehlásí známé zranitelnosti použitých závislostí. Projekt tedy nemá způsob, jak se o nové zranitelnosti dozvědět jinak než náhodou. Audit licencí přitom zavedený je, což znamená, že infrastruktura na kontrolu závislostí existuje a chybí jen tento krok.
⚠️ Toto zjištění má u AI vývoje zesílený dopad. Agent běžně navrhuje přidání nové závislosti, protože je to nejrychlejší cesta k funkčnímu řešení. Bez automatického reportu zranitelností roste plocha rizika tím rychleji, čím produktivnější agent je.
🟥 Závislosti se neaktualizují automaticky
Nikdo automaticky nevytváří merge requesty s aktualizacemi závislostí. Kontrola stavu knihoven odhalila, že u několika služeb poslední aktualizace přesáhla rok, u dvou z nich o hodně víc. Aktualizace se tak hromadí do velkých, rizikových skoků místo malých průběžných kroků.
🟥 Nepoužívané závislosti a exporty se nehlídají
Pipeline nekontroluje mrtvý kód, nepoužívané soubory ani exporty. Kromě zbytečné údržby to zhoršuje i kvalitu agentní práce: agent, který v repozitáři najde dvě podobné cesty k témuž, si nemá jak vybrat správnou a klidně rozšíří tu, která se už nepoužívá.
Doporučení
| Priorita | Doporučení |
|---|---|
| Vysoká | Zapojit report zranitelností závislostí do pipeline u každého merge requestu. |
| Střední | Zavést automatické merge requesty s aktualizacemi závislostí a dorovnat zaostalé služby. |
| Střední | Doplnit kontrolu nepoužívaných závislostí, souborů a exportů. |