Přístupnostní navigace
E-application
Search Search Close
Bachelor's Thesis
Author of thesis: Bc. Jan Šuman
Acad. year: 2022/2023
Supervisor: Ing. Bohuslav Křena, Ph.D.
Reviewer: Ing. Ondřej Vašíček
The primary objective of this thesis is to design and implement a tool in the form of a GitHub Actions workflow, which facilitates the execution of static analyses on repositories within the GitHub web service, and subsequently delivers the results of these analyses in the SARIF format (Static Analysis Results Interchange Format). Initially, the thesis provides an introduction to the CI/CD (continuous integration and continuous delivery) platform, GitHub Actions, and elaborates on its fundamental components. Subsequently, an in-depth examination of the SARIF format, the employed static analyzers, and the overarching implementation design is presented. Furthermore, a comprehensive description of the implementation is provided, enabling the utilization of the implemented workflow at both repository and external call levels. In conclusion, the practical application of the workflow is exemplified through its deployment on repositories furnished by the Kyndryl corporation.
GitHub, Actions, workflow, GitHub Actions, Python, SARIF, Static Analysis Results Interchange Format, analysis, static analysis, analyzer, static analyzer
Date of defence
13.06.2024
Date of publish
13.06.2027
Result of the defence
Defended (thesis was successfully defended)
Grading
D
Process of defence
Student nejprve prezentoval výsledky, kterých dosáhl v rámci své práce. Komise se poté seznámila s hodnocením vedoucího a posudkem oponenta práce. Student následně odpověděl na otázky oponenta a na další otázky přítomných. Komise se na základě posudku oponenta, hodnocení vedoucího, přednesené prezentace a odpovědí studenta na položené otázky rozhodla práci hodnotit stupněm D.
Topics for thesis defence
Language of thesis
Czech
Faculty
Fakulta informačních technologií
Department
Department of Intelligent Systems
Study programme
Information Technology (BIT)
Composition of Committee
prof. Ing. Tomáš Hruška, CSc. (předseda) Ing. Šárka Květoňová, Ph.D. (člen) Ing. Bohuslav Křena, Ph.D. (člen) Ing. František Grézl, Ph.D. (člen) Ing. Jiří Matoušek, Ph.D. (člen)
Supervisor’s reportIng. Bohuslav Křena, Ph.D.
Z pohledu vedoucího jsem byl se spoluprací se studentem spokojen. K hodnocení stupněm dobře (C) jsem se rozhodl, protože práce určitě patří mezi ty jednodušší, byť to, že student našel jednoduché řešení zadaného problému, je z praktického hlediska vlastně dobře. Asi bych si také dovedl představit důkladnější vyhodnocení implementovaného řešení.
Téma bakalářské pochází z praxe, konkrétně z firmy Kyndryl. Odhadnout obtížnost zadání při jeho formulaci bylo proto poměrně náročné. Nakonec se ukázalo, že zadání práce patří k těm jednodušším. Student tak mohl implementovat jako rozšíření například možnost ukládání výsledků statických analýz ve formátu HTML, která nakonec nebyla do zadání zahrnuta.
Do práce studenta jsem s ohledem na to, že se jednalo o firemní zadání, nemusel příliš zasahovat. Kromě zdrojů, které jsou uvedeny v zadání, si student studijní materiály vyhledal samostatně nebo ve spolupráci s konzultantem či dalšími kolegy z Kyndrylu.
Aktivita studenta odpovídala tomu, že se jednalo o zadání z praxe. Veškeré mé požadavky (zejména na odevzdání a obhajobu semestrálního projektu) student splnil.
Strukturu práce jsme diskutovali v průběhu celého jejího řešení. V závěrečných fázích jsem měl možnost sledovat dokončování technické zprávy prostřednictvím on-line editoru Overleaf. První ucelenou verzi práce jsem připomínkoval a student mé připomínky v odevzdané technické zprávě zohlednil.
Zde si dovolím uvést hodnocení konzultanta Mgr. René Michálka z firmy Kyndryl, které jsem si vyžádal, dokládající význam a užitečnost práce:
Jan Šuman se ve společnosti Kyndryl zaměřuje na aplikovaní statických analýz kódu v sw řešeních na bázi Ansible. Statické analýzy kódu se také využívají v certifikačním procesu, pomocí kterého se vyhodnocuje, zda dané řešení splňuje požadované kvalitativní parametry. Informace o tom, zda dané řešení dosáhlo certifikace, je důležitou informací pro potenciálního uživatele, která pomáhá v rozhodování o nasazení řešení na příslušného zákazníka.
Vzhledem k tomu, že průběžně vzniká obrovské množství nových řešení, resp. stávající řešení se vyvíjí ve formě nových verzí a zároveň se rozvíjejí kvalitativní požadavky, čelíme problému, jak rozumnězpracovat rostoucí množství informací pro vyhodnocování podkladů pro certifikace.
Práce Jana Šumana významně pomůže s konsolidací zmíněných podkladů do jednoho standardizovaného formátu SARIF, což otevírá cestu integrace s dalšími nástroji, které tento standard podporují a které mohou nabídnou služby vhodné pro začlenění do stávajícího certifikačního procesu. Výsledky práce budou dále využívány i jednotlivými vývojáři pro spouštění statických analýz a poskytování výsledků v unifikovaném SARIF souboru.
Grade proposed by supervisor: C
Reviewer’s reportIng. Ondřej Vašíček
Práce byla jednodušší, obsahuje prominutelné nedostatky z pohledu citační etiky a pohybuje se na hranici minimálního rozsahu textu, především vzhledem k povaze textu v kapitole o implementaci.
Nicméně zadání bylo splněno, text práce je dobře pochopitelný, programový výstup je funkční a firma Kyndryl plánuje výsledek práce prakticky použít.
Evaluation level: méně obtížné zadání
Práce byla zadána firmou Kyndryl. Zadání ale považuji za poměrně jednoduché. Nejobtížnější částí bylo pravděpodobně seznámení se s tím, jak se pracuje s GitHub actions a workflows.
Evaluation level: zadání splněno
Zadání bylo jednodušší, nicméně bylo zcela splněno. Řešení neobsahuje rozšíření nad rámec zadání.
Evaluation level: splňuje pouze minimální požadavky
Práce má bez obrázků a výpisů kódu 35 normostran. Většina kapitoly o implementaci navíc popisuje zbytečné implementační detaily, které by v práci být neměly. Práci bych tedy považoval jako hraničně splňující minimální požadavky rozsahu.
Pochopitelnost práce pro čtenáře je dobrá.
Výhrady mám ke kapitole o implementaci, jejíž většina se věnuje podrobným implementačním detailům. Myšlenkový tok kapitoly spočívá v ukázání části zdrojového kódu ve formě výpisu a následném vysvětlení onoho kódu. Místy je zdrojový kód vysvětlován řádek po řádku včetně importů, zpracování argumentů skriptu, popis cyklu a jeho indexování, vysvětlení použití "try catch" bloku a dalších.
Z typografické stránky chybí na řadě míst nezlomitelné mezery. Dále číslování řádků ve výpisech přetéká levý okraj textu. Místy jsou špatně vysázeny parametry skriptů (např. "--" na straně 23). Jinak je typografie v pořádku.
Z jazykového hlediska se na pár místech práce blíží k hranici spisovnosti. Také by bylo lepší se vyhnout použití anglických verzí pojmů, které mají vhodný překlad (například "branche" místo "větve" v kontextu GitHub).
V kapitole č. 2 (použité technologie) mě zaskočilo, že téměř každý odstavec je zakončen citací (tj. odkazem na zdroj). V prvních dvou třetinách této kapitoly, které se věnují popisu GitHub Actions a standardu SARIF, jsem proto identifikoval několik souvětí (asi 12 v hustotě jedno až dvě na odstavec), která jsou po překladu doslovně stejná s citovaným textem. Tato převzatá souvětí, ale nejsou jasně odlišena od ostatního textu a není tedy jasné, které části textu byly převzaty doslovně a které jen volně. Nicméně zdroje jsou alespoň nějakým způsobem uvedeny.
Obrázek 2.1 byl převzat z jednoho ze zdrojů, ale tato skutečnost není nikde jasně uvedena.
Příklady SARIF logů, především výpis 2.3, byly také převzaty z jednoho ze zdrojů a drobně upraveny. Toto ale opět není v práci nikde uvedeno.
Realizační výstup splnil zadání a byl otestován na reálných repozitářích firmy Kyndryl.
Práce byla zadána společností Kyndryl a očekává se praktické použití jejího výstupu.
Grade proposed by reviewer: D
Reasons for publication postponement
Publication of the final thesis has been postponed in compliance with the provisions of Section 47b (4) of Act No. 111/1998 Coll., on the Higher Education Institutions and on amendments and supplements to other acts, as amended.
The publication of the bachelor's thesis is in accordance with the provision of § 47b par. 4 of the Act no. 111/1998, about universities and about the change and supplementing other laws (Higher Education Act), as amended, delayed by 3 years. The reason for the delay of the publication is the protection of intellectual property and the fact that the thesis contains business secret in the sense of the relevant provisions of the Act no. 89/2012 Coll., Civil Code.
Responsibility: Mgr. et Mgr. Hana Odstrčilová