Integrace pull requestů
Každý otevřený pull request klasifikovaný proti aktuálnímu master — připravený, vyžaduje obnovu, čeká na kontroly, revizi nebo závislost, koncept, vyžaduje opravu, v konfliktu, blokovaný, nebezpečný (zapnuté auto-merge), redundantní (jeho práce už je na master), nahrazený (deklarovaným nástupcem, který přistál, jmenovaným v superseded_by), možná redundantní, jiná báze nebo neznámý — každý s master a hlavou, proti nimž byl rozhodnut, jeho důvody, důkazy, rizikem a překryvy, deterministicky seřazený; a auditní stopa exekutoru, který slučuje další prokazatelně bezpečný, po jednom. Vztah k master rozhoduje git s vlastními merge drivery tohoto repozitáře, protože forge nedokáže spustit driver odvozených souborů. Čte se z posledního zaznamenaného pozorování forge; jedinou výjimkou je důkaz nanečisto, který forge pozoruje sám, protože pozorování je součástí toho, co dokazuje, že nic nepřesouvá.
Každý otevřený pull request klasifikovaný proti aktuálnímu master — připravený, vyžaduje obnovu, čeká na kontroly, revizi nebo závislost, koncept, vyžaduje opravu, v konfliktu, blokovaný, nebezpečný (zapnuté auto-merge), redundantní (jeho práce už je na master), nahrazený (deklarovaným nástupcem, který přistál, jmenovaným v superseded_by), možná redundantní, jiná báze nebo neznámý — každý s master a hlavou, proti nimž byl rozhodnut, jeho důvody, důkazy, rizikem a překryvy, deterministicky seřazený; a auditní stopa exekutoru, který slučuje další prokazatelně bezpečný, po jednom. Vztah k master rozhoduje git s vlastními merge drivery tohoto repozitáře, protože forge nedokáže spustit driver odvozených souborů. Čte se z posledního zaznamenaného pozorování forge; jedinou výjimkou je důkaz nanečisto, který forge pozoruje sám, protože pozorování je součástí toho, co dokazuje, že nic nepřesouvá.
- module integration
- builtin
- experimentální
- 7 schopností
Schopnosti
Každý je složen v souboru tohoto modulu; každý má vlastní stránku.
integration.cleanupPlán úklidu, rozhodnutý offline ze zaznamenaného pozorování: každý otevřený pull request, který by úklid zavřel — redundantní (jeho práce už je na masteru) nebo nahrazený (deklarovaným nástupcem, který přistál) — a každý, který nechává osobě — možná redundantní (slabý důkaz) nebo zastaralý (osoba jej označila, rozhodnutí vlastníka D3) — každý s dispozicí a důvody, které rozhodly, v pořadí podle ranku; vedle toho větve, které sloučené pull requesty nechaly na origin, jak je `majordomus prs cleanup` naposledy četl, s uvedením kdy a před jak dlouhou dobou. Čtení: nic nezavírá, nemaže ani se na nic neptá forge — `majordomus prs cleanup` čte forge a `--apply` zavírá. `observed: false` s důvodem, když tento checkout nezaznamenal žádné pozorování.query · experimental · majordomus_pull_requests_cleanup · GET /api/v1/pull-requests/cleanupintegration.eventsKaždá akce, kterou executory repozitáře zaznamenaly z kteréhokoli jeho worktree, nejstarší první: převzaté a vrácené lease, pozorování, výběry, rozhodnutí o zastaralosti, pokus každého aktu před ním a jeho výsledek po něm — merge s masterem před a po, odmítnutí, obnovení, selhání ověření a uzavření — každé s typovanou akcí, aktérem, pull requestem, headem, důvody rozhodnutí a u aktu s důkazem, na jehož základě se rozhodlo. Stopa je jeden soubor pod společným adresářem gitu, takže každý worktree čte tentýž.query · experimental · majordomus_integration_events · GET /api/v1/pull-requests/eventsintegration.explainPosouzení jednoho pull requestu — dispozice, dráha, důvody, každá kontrola politiky s tím, zda prošla, další akce, master a head, proti nimž bylo rozhodnuto, a kdy byl pozorován forge, požadované kontroly, review, vztah k masteru, závislosti, překryvy, riziko s jeho faktory a každý důkaz — s jeho pořadím ve frontě. `found: false` s důvodem, když není otevřen nebo se nic nepozoruje.query · experimental · majordomus_pull_request_explain · GET /api/v1/pull-requests/explainintegration.prove_dry_runSpustí nemodifikující cyklus executoru — refresh, plan, drain --dry-run a cleanup bez --apply — mezi dvěma snímky všeho, co by mohl přesunout, kdyby se mýlil: každé ref, které origin servíruje, číslo, hlava, stav a štítky každého otevřeného pull requestu, auditní stopa integrace, lease executoru a každé lokální ref mimo dva jmenné prostory, které refresh zrcadlí. `ok` je pravda právě tehdy, když jsou snímky shodné a refs/remotes/origin/<base> a každé refs/majordomus/prs/<n> se rovnají tomu, co servíruje origin. Čtení, které sahá do sítě: refresh se ptá forge přes GitHub CLI a stahuje základ a hlavy pull requestů a jako každé čtení přepisuje cache pozorování, vztahů a souhrnů. Nic nemerguje, nezavírá ani nepushuje a nebere žádný vstup, který by to mohl způsobit.query · experimentální · majordomus_pull_requests_prove_dry_run · GET /api/v1/pull-requests/prove-dry-runintegration.queueŘazená fronta: repozitář, základ a commit masteru, proti nimž bylo rozhodnuto každé posouzení, kdy byl pozorován forge, platná politika (požadované kontroly a review ochrany větve, politika štítků, metoda sloučení: merge commit, nebo žádná, když repozitář žádnou nepřipouští), posouzení každého otevřeného pull requestu v pořadí hodnocení — akceschopný s tím, jak dlouho čekal na executor a jak často byl zvolen jiný — příští sloučení, pull requesty, které potřebují vnést master, hladovějící, součty podle dispozice a dráhy a diagnostiky, zastaralé pozorování první; vedle toho, kdo drží integrační zápůjčku základní větve a poslední sloučení, které executor zaznamenal. `observed: false` s důvodem, když tento checkout nezaznamenal žádné pozorování.query · experimental · majordomus_pull_requests · GET /api/v1/pull-requestsintegration.timingsJak dlouho trvá CI na otevřených pull requestech, měřeno ze zaznamenaného pozorování forge: pro každou kontrolu kolik jejích běhů začalo a dokončilo, kolik prošlo a selhalo a její medián, 90. percentil (nearest rank) a nejdelší doba v sekundách, nejpomalejší medián první; pro každý otevřený head s měřenou kontrolou doba od startu jeho první kontroly po dokončení jeho poslední kontroly a kontrola, která trvala nejdéle, nejdelší čekání první; a kolik běhů nešlo změřit (stále běží, ve frontě nebo zaznamenané před čtením startů), které se počítají a nikdy neměří jako nula. Čtení: nic se nepýtá forge; pozorování zaznamenává `majordomus prs refresh`. `observed: false` s důvodem, když tento checkout žádné nezaznamenal.query · experimental · majordomus_ci_timings · GET /api/v1/pull-requests/timingsintegration.trainsKaždý vlak otevřených pull requestů — skupina spojená potvrzenými závislostmi: základní větev, která je hlavou jiného otevřeného pull requestu, nebo řádek `Stacked on #N` / `Depends on #N` v těle — v pořadí přistání. Pro každý článek: číslo, titulek, autor, hlavní a základní větev, hlavní commit, stránka a kontroly na forge, dispozice, lane, důvody, další akce, stav vyžadovaných kontrol a každá kontrola na hlavě, vztah k masteru s tím, jak daleko za ním je a zda nese master, připravená hlava pod refs/prep/<n> s tím, zda je to hlava, kterou forge servíruje (pushed), nebo ještě ne (pending), jeho pozice a hloubka, zda přišla jeho řada, na čem stojí a co nese, jeho pořadí ve frontě a zda ho zachytává cyklus. Pro každý vlak: kořeny, vrcholy, další článek, který pořadí dovoluje, hrany (STACKED_ON nebo DEPENDS_ON, splněné, když článek pod ním přistál) a pull requesty pod ním, které už nejsou otevřené. Vedle nich připravené hlavy, které žádný vlak nedrží, součty a diagnostika fronty. Čte se ze zaznamenaného pozorování, fronty, kterou tiskne `majordomus prs status`, a lokálních refs: nic nestahuje, nepushuje ani nepřesouvá. `observed: false` s důvodem, když tento checkout nezaznamenal žádné pozorování.query · experimental · majordomus_pull_request_trains · GET /api/v1/pull-requests/trains