Integrace
Kontrola pull requestů na GitHubu
Změna v šabloně košíku projde code review, testy jsou zelené a o týden později chybí v reportu purchase. Kontrola pull requestů tohle přesouvá před merge: každý pull request přehrajeme na jeho preview prostředí stejnými cestami, jaké hlídáte na produkci, a výsledek zapíšeme do GitHubu jako check s názvem AnalyticsProof.
Co potřebujete
- Projekt na plánu Enterprise a test webu nebo HbbTV aplikace s aspoň jednou nahranou cestou. Tlačítko „Připojit GitHub“ je na stránce testu. Propojení s GitHubem může měnit editor a výš, ostatní tlačítko vidí zašedlé.
- Preview prostředí, které se pro pull request nasadí na vlastní adresu přes https. Může být za heslem nebo za IP allowlistem, obojí se nastaví ve třetím kroku.
- Cesty nahrané v časovém pásmu země skenu. Když to nesedí, dialog cestu vyjmenuje a doporučí ji nahrát znovu, než kontrolu zapnete.
Nastavení má tři kroky: Repozitář, Preview URL a Přístup.
Krok 1: Repozitář
Klikněte na „Autorizovat GitHub“. V novém panelu povolíte na GitHubu přístup a my pak uvidíme repozitáře, které smíte měnit. Pokud aplikace AnalyticsProof ve vaší organizaci ještě není nainstalovaná, objeví se odkaz „Připojit AnalyticsProof App na GitHubu“. Při instalaci stačí zvolit „Only select repositories“ a zaškrtnout jen repozitář webu. Po návratu použijte „Obnovit repozitáře“ a vyberte repozitář v poli „Repozitář webu“.

Krok 2: Preview URL
V poli „Odkud vezmeme adresu preview“ jsou dvě možnosti.
Z GitHub Deployments. Hodí se, když váš hosting nebo pipeline zapisuje nasazení pull requestu do GitHubu. Čekáme na deployment commitu z pull requestu se stavem success a vyplněnou adresou prostředí (environment_url). Dokud se neobjeví, check ukazuje, že na adresu čeká. Když nepřijde do 10 min od spuštění checku, check skončí jako neutrální.
Ze šablony adresy. Hodí se, když má preview předvídatelnou adresu. Do šablony dáte zástupné symboly:
| Zástupný symbol | Dosadí se |
|---|---|
{branch} |
Název větve malými písmeny, každý úsek jiných znaků nahradí pomlčka |
{pr} |
Číslo pull requestu |
{sha} |
Celý hash commitu |
{sha7} |
Prvních sedm znaků hashe commitu |
Pod polem hned vidíte ukázku, jak by adresa vypadala pro větev feature/checkout. Šablona musí vést na veřejnou doménu přes https://, bez čísla portu, bez jména a hesla v adrese a bez IP adresy. Lokální názvy (.local, .internal, .test, .example a podobné) dialog odmítne. Šablona bez zástupného symbolu projde, ale dialog upozorní, že by se každý pull request testoval na stejné adrese.

Krok 3: Přístup
Heslo k preview. Pokud je preview za Basic auth, zaškrtněte „Preview vyžaduje jméno a heslo (Basic auth)“ a vyplňte údaje. Prohlížeč je pošle jen adrese preview, ne dalším službám na stránce. Heslo je uložené jako běžný text a editoři ho v dialogu vidí. Použijte proto samostatné přihlášení jen pro preview, ne osobní účet.
IP allowlist. V poli „Povolte naši IP“ je adresa, ze které skenujeme. Určuje ji země, kterou jste zvolili při vytvoření testu, a pod stejnou adresou běží i skeny pull requestů. Přidejte ji na allowlist preview prostředí.
„Ověřit a uložit“ nejdřív zkusí preview otevřít: DNS, TLS handshake, HTTP odpověď, vykreslení stránky a DataLayer. Uloží se, jen když ověření projde. Když selže, uvidíte, na kterém kroku a co s tím.
Žádný pull request v tu chvíli není, proto ověření použije výchozí větev repozitáře a její poslední commit. Do šablony dosadí název výchozí větve a {pr} vyplní nulou. Šablona postavená jen na čísle pull requestu tedy projde, jen pokud taková adresa existuje. U GitHub Deployments musí mít úspěšný deployment poslední commit výchozí větve. Když ho nemá, dialog nabídne „Uložit i tak“.
Po uložení je v dialogu „Spustit kontrolu“. Přehraje cesty na stejné adrese jako ověření a odkaz „Otevřít výsledky“ vede na výsledek v dashboardu. Je to nejrychlejší způsob, jak ověřit celé nastavení dřív, než ho uvidí kolegové na svém pull requestu.

Co check hlásí
Kontrola běží, když pull request otevřete, pushnete do něj, znovu ho otevřete nebo ho označíte jako připravený k review. Rozpracovaný pull request (draft) dostane neutrální check a přehraje se, až bude připravený k review. Výsledek pro starší commit se nezapíše, pokud mezitím přišel novější push.
- Přehrají se všechny aktivní cesty testu, každá od adresy preview. Běží v režimu dry-run: vzniknou rozdíly a výsledek pro check, ale do cesty ani do jejího očekávaného stavu se nic nezapíše. Víc o dry-runu je v referenci API.
- Počítá se jen to, co web posílá přímo do
window.dataLayer. Požadavky, které z toho dál posílají nástroje jako GA4, zůstávají v dashboardu. Za ty vývojář změnou webu přímo neodpovídá. - Posuzuje se jen to, co přinesl pull request. Rozdíly porovnáme s posledním produkčním skenem cesty. Komentář v pull requestu je rozdělí na „New in this PR“ a „Already on production“. Pokud produkce ještě skenovaná nebyla, bere se všechno jako nové.
- Blokují jen kritické změny. Typicky je to událost, kterou očekávaný stav čeká a která v kroku chybí (pokud ji nemáte jako volitelnou). Nová událost, chybějící parametr nebo jiný typ parametru jsou varování: v komentáři je uvidíte, ale check kvůli nim nezčervená. Hodnoty parametrů neporovnáváme, jen jejich přítomnost a typ v JavaScriptu.
- Neměřitelná cesta není zelená. Když se sken cesty nepovede nebo nic nezměří, check zčervená, i když žádnou změnu nenašel. Cesta, která nedojde do posledního kroku, je jen varování: nejspíš ji rozbila větší změna webu, ne tenhle pull request.
Text checku i komentáře je anglicky, i když máte dashboard česky. Čtou ho reviewři repozitáře a název checku musí zůstat stejný kvůli ochraně větve.
Povinný check
Až check poprvé projde, můžete ho v GitHubu nastavit jako povinný. V ochraně větve nebo v pravidlech repozitáře zapněte požadované status checky a vyberte AnalyticsProof. GitHub nabízí jen checky, které v repozitáři nedávno proběhly, proto to jde až po prvním běhu.
Počítejte s tím, že GitHub bere neutrální výsledek jako splněný. Pull request, pro který se preview nenašlo, draft nebo pull request, u kterého se nedala porovnat žádná cesta, tedy merge nezablokuje.
Když check nedělá, co čekáte
| Titulek checku | Co znamená | Co s tím |
|---|---|---|
AnalyticsProof — critical dataLayer change |
Některá cesta našla kritickou změnu, nebo se nedala změřit. | V tabulce checku je u každé cesty stav. Detail je pod odkazem na výsledek. |
AnalyticsProof — waiting for a preview URL |
Deployment s adresou zatím nepřišel, nebo adresu ze šablony nebylo možné použít. | Zkontrolujte, že hosting zapisuje deployment ke commitu z pull requestu, nebo opravte šablonu. |
AnalyticsProof — nothing measurable |
Nedala se porovnat ani jedna cesta, typicky proto, že žádná ještě nemá očekávaný stav. Jakmile jde porovnat aspoň jedna cesta, check je podle ní zelený nebo červený a ostatní cesty tabulka vypíše i s důvodem. | Počkejte, až si cesty očekávaný stav vytvoří. Stav uvidíte u cesty v dashboardu. |
AnalyticsProof — nothing to run |
Test nemá žádnou aktivní cestu. | Nahrajte cestu nebo obnovte pozastavenou. |
AnalyticsProof — could not run |
Chyba na naší straně. | Check se zkusí znovu sám. Když zůstane, napište nám, opravíme to. |
AnalyticsProof — Enterprise only |
Projekt není na plánu Enterprise. | Kontrola pull requestů je součástí plánu Enterprise. |
AnalyticsProof — not configured |
Aplikace je na repozitáři nainstalovaná, ale repozitář není propojený s žádným testem. | Propojte ho v dialogu GitHubu na stránce testu, nebo repozitář z instalace aplikace odeberte. |
AnalyticsProof — will run once the PR is ready for review |
Pull request je draft. | Označte ho jako připravený k review, check se pak spustí sám. |
Častý důvod červeného checku ale není v dataLayeru. Preview odmítne náš prohlížeč, protože chybí IP na allowlistu nebo nesedí heslo. Pusťte „Ověřit a uložit“ znovu, ukáže přesně, na kterém kroku přístup selhal.
Nepoužíváte GitHub, nebo chcete bránu poskládat po svém? Totéž umí API: postup popisuje návod CI/CD přes API, hotové recepty jsou v referenci pro CI.