Portál AbcLinuxu, 30. června 2025 06:24
Než sa pustím do samotného popisu skriptu napíšem zopár slov o našom pracovnom postupe so systémom GIT.
Ako som už na začiatku spomínal moja rola (okrem developera) je integračný manager. Pri rozdelení úloh na manažéra a vývojárov má každý vývojár vlastný repozitár. Každý vývojár môže svoj repozitár aktualizovať z hlavného repozitára, ku ktorému má read-only prístup.
Ja som v tíme najskúsenejší a preto som priamo zodpovedný za kvalitu finálneho produktu. Aby sa do hlavného repozitára nedostali nedorobky kontrolujem každý commit pred jeho pretiahnutím do hlavného repozitára. V prípade, že nájdem nedostatky nechám chybný kód prerobiť a zaradím až bude napísaný v požadovanej kvalite.
Tento postup vyžaduje buď periodickú kontrolu obsahu repozitárov, alebo nejaký systém notifikácií napr.
Aby som maximálne eliminoval nedostatky rôznych systémov notifikácií rozhodol som sa napísať malý skript, ktorý bude perfektne prispôsobený nášmu pracovnému postupu.
Tento skript je napísaný v pythone 3. Aby mohol fungovať musí byť nainštalovaná knižnica pyinotify (hádam sa neznížim k takým hrúzam ako je pooling). Ďalej musí byť v $PATH
nainštalovaný git
a notify-send
.
Pred prvým spustením sa musí skript nakonfigurovať. Akosi som v poslednej dobe lenivý, takže neošetroval som vôbec prípady kedy by konfiguračný súbor neexistoval. Bez neho jednoducho aplikácia skončí na výnimke.
Predvolená cesta ku konfiguračnému súboru je ~/.config/LinuxOS.sk/gitwatcher.cfg
. Ukážkový konfiguračný súbor vyzerá nasledovne:
[DEFAULT] icon=/usr/share/icons/oxygen/64x64/actions/svn-commit.png color_add=#00ff00 color_remove=#ff2000 display_time=360000 [test] directory=/home/user/gittest/.git [test2] directory=/home/user/gittest2/.git
Direktívy v sekcii DEFAULT
sú voliteľné. Nasledujú už len definície samotných sledovaných repozitárov.
Po commite v niektorom zo sledovaných adresárov sa na systéme s podporou libnotify zobrazí pasívna notifikácia.
Tiskni
Sdílej:
Na takéto veci mám nakonfigurované redmine aj s automatickým uzatváraním ticketov (stačí v commite closes #123)Jo, tohle je pěkná vychytávka, ale bohužel ji lze použít jen u jednodušších (a dobře navržených) systémů kde se snadno ověří že je to opravdu hotovo a funkční. Když je mezi commitem a uzavřením prodleva hodiny až dny (build, nasazení, příprava dat, provedení testu, kontrola všech dvaceti míst v třech různých aplikacích které to může ovlivnit, navíc to otestování by měl dělat někdo jiný nezaujatý a právě teď jako na potvoru nikdo nemá čas) tak už to zas takový šlágr není.
Ticketovací systém by so rád v práci zaviedol, ale žiaľ nie je to tak jednoduchá záležitosť ako sa zdá. Takže zatiaľ tieto veci riešime chaotickým spôsobom bez riadenia.To bych neřekl, když tam máte integrátora - to je samo o sobě velmi efektivní způsob organizace. V některých ohledech lepší než ticketovací systém. Jinak stačí počkat až pojedeš na delší dovolenou a stane se průser
Jinak stačí počkat až pojedeš na delší dovolenou a stane se průser
Ja sa ako pravý workoholik na žiadnu nechystám. Voľno budeme mať v rovnakom čase, ja ostávam vtedy v pohotovosti keby niečo. Našťastie bývam v krásnom prostredí, takže budú pekné výlety do okolia s mobilom vo vrecku.
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.