Zkoumal jsem nástroje, které usnadňují proces kontroly kódu, a nedávno jsem objevil open-source PR-Agent (spolu s jeho spravovanou verzí, Qodo Merge). Je to jeden z nejzajímavějších přístupů k automatizaci PR, se kterým jsem se v poslední době setkal. Funguje jako užitečný asistent umělé inteligence příkazového řádku přímo ve vašem poskytovateli Gitu. Co mě zaujalo, je jeho architektura a způsob, jakým zpracovává požadavky. Jak to funguje Když v žádosti o přijetí změn přidáte komentář /review nebo /ask "jaký je dopad této změny?", agent spustí inteligentní pracovní postup: - Žádost o výtah: Nejprve analyzuje změny kódu žádosti o přijetí změn (hunky) a pochopí konkrétní příkaz, který jste vydali. - Plán: Na základě vašeho požadavku formuluje plán. To zahrnuje kompresi a prioritizaci s ohledem na tokeny, což je zásadní pro efektivní zpracování velkých žádostí o přijetí změn a zaměření se na to, co je důležité. - Výběr funkce: Následně inteligentně směruje požadavek na příslušný specializovaný nástroj. Tento modulární přístup je skvělý, protože věnuje specifickou logiku pro popis, kontrolu, navrhování vylepšení, odpovídání na otázky, generování dokumentů a další. Kromě pouhého generování obecného popisu žádosti o přijetí změn (/describe) jsou některé příkazy neuvěřitelně výkonné pro každodenní pracovní postup vývojářů: /review: To poskytuje nastavitelnou zpětnou vazbu, která jde nad rámec statické analýzy. Může komentovat potenciální problémy a obavy o bezpečnost a dokonce odhadnout úsilí potřebné ke kontrole od lidského kolegy. /improve: Místo toho, aby upozorňovala na problém, poskytuje konkrétní, vložené návrhy kódu, které můžete přímo přijmout. To výrazně zkracuje cestu tam a zpět. /ask: To mění hru. Můžete klást otázky týkající se PR formou volného textu (např. "Proč byla vybrána právě tato knihovna?" nebo "Vysvětlete logiku v my_function"). Využívá kontext žádosti o přijetí změn k tomu, aby vám poskytl relevantní odpověď. Hlubší integrace: Má také nástroje pro automatickou aktualizaci souboru MD CHANGELOG (/update_changelog), generování jednotkových testů pro změněné komponenty (/test) a dokonce i získávání zpětné vazby na neúspěšné úlohy CI (/ci_feedback). Připadá mi to jako krok správným směrem pro vývoj s podporou umělé inteligence, méně o nahrazení vývojáře a více o rozšíření procesu kontroly, aby byl rychlejší a důkladnější. Co je pro vás na procesu PR nejzdlouhavější?
1,9K