%%{init: {"theme": "base", "themeCSS": ".messageLine0:nth-of-type(8){stroke:#16a34a;stroke-width:2px} .messageLine0:nth-of-type(9){stroke:#16a34a;stroke-width:2px} .messageLine0:nth-of-type(10){stroke:#16a34a;stroke-width:2px} .messageLine0:nth-of-type(11){stroke:#16a34a;stroke-width:2px} .messageLine0:nth-of-type(12){stroke:#16a34a;stroke-width:2px} .messageLine0:nth-of-type(13){stroke:#16a34a;stroke-width:2px} .messageLine0:nth-of-type(14){stroke:#16a34a;stroke-width:2px} .messageText:nth-of-type(8){fill:#16a34a} .messageText:nth-of-type(9){fill:#16a34a} .messageText:nth-of-type(10){fill:#16a34a} .messageText:nth-of-type(11){fill:#16a34a} .messageText:nth-of-type(12){fill:#16a34a} .messageText:nth-of-type(13){fill:#16a34a} .messageText:nth-of-type(14){fill:#16a34a}"}}%%
sequenceDiagram
participant U as UpStream Repo
participant G as GitHub App
participant W as webhook_handler
participant R as Redis
participant D as DownStream Repo
box rgba(187,247,208,0.5)
participant RH as result_handler
participant H as HUD
end
U->>G: PR/Push event trigger
W<<->>G: Verify Signature
W->>G: Require Allowlist
W->>R: Cache Allowlist
W->>G: Require DownStream Repos installation ID
G->>W: Return installation ID
W->>D: Passthrough payload to DownStream Repos
D->>RH: In progress action call
RH<<->>D: Verify payload with OIDC
RH->>R: Check allowlist in redis
R->>G: Fetch allowlist from GitHub if not in redis
RH->>H: Show in progress action on HUD
D->>RH: Completed action call
RH->>H: Show completed action on HUD
L1
%%{init: {"theme": "base"}}%% sequenceDiagram participant U as UpStream Repo participant G as GitHub App participant W as webhook_handler participant R as Redis participant D as DownStream Repo U->>G: PR/Push event trigger W<<->>G: Verify Signature W->>G: Require Allowlist W->>R: Cache Allowlist W->>G: Require DownStream Repos installation ID G->>W: Return installation ID W->>D: Passthrough payload to DownStream ReposL2
%%{init: {"theme": "base", "themeCSS": ".messageLine0:nth-of-type(8){stroke:#16a34a;stroke-width:2px} .messageLine0:nth-of-type(9){stroke:#16a34a;stroke-width:2px} .messageLine0:nth-of-type(10){stroke:#16a34a;stroke-width:2px} .messageLine0:nth-of-type(11){stroke:#16a34a;stroke-width:2px} .messageLine0:nth-of-type(12){stroke:#16a34a;stroke-width:2px} .messageLine0:nth-of-type(13){stroke:#16a34a;stroke-width:2px} .messageLine0:nth-of-type(14){stroke:#16a34a;stroke-width:2px} .messageText:nth-of-type(8){fill:#16a34a} .messageText:nth-of-type(9){fill:#16a34a} .messageText:nth-of-type(10){fill:#16a34a} .messageText:nth-of-type(11){fill:#16a34a} .messageText:nth-of-type(12){fill:#16a34a} .messageText:nth-of-type(13){fill:#16a34a} .messageText:nth-of-type(14){fill:#16a34a}"}}%% sequenceDiagram participant U as UpStream Repo participant G as GitHub App participant W as webhook_handler participant R as Redis participant D as DownStream Repo box rgba(187,247,208,0.5) participant RH as result_handler participant H as HUD end U->>G: PR/Push event trigger W<<->>G: Verify Signature W->>G: Require Allowlist W->>R: Cache Allowlist W->>G: Require DownStream Repos installation ID G->>W: Return installation ID W->>D: Passthrough payload to DownStream Repos D->>RH: In progress action call RH<<->>D: Verify payload with OIDC RH->>R: Check allowlist in redis R->>G: Fetch allowlist from GitHub if not in redis RH->>H: Show in progress action on HUD D->>RH: Completed action call RH->>H: Show completed action on HUDL3 & L4
%%{init: {"theme": "base", "themeCSS": ".messageLine0:nth-of-type(5){stroke:#16a34a;stroke-width:2px} .messageLine0:nth-of-type(6){stroke:#16a34a;stroke-width:2px} .messageLine0:nth-of-type(7){stroke:#16a34a;stroke-width:2px} .messageLine0:nth-of-type(15){stroke:#16a34a;stroke-width:2px} .messageLine0:nth-of-type(17){stroke:#16a34a;stroke-width:2px} .messageLine0:nth-of-type(18){stroke:#16a34a;stroke-width:2px} .messageLine0:nth-of-type(19){stroke:#16a34a;stroke-width:2px} .messageLine0:nth-of-type(20){stroke:#16a34a;stroke-width:2px} .messageLine0:nth-of-type(21){stroke:#16a34a;stroke-width:2px} .messageLine0:nth-of-type(22){stroke:#16a34a;stroke-width:2px} .messageLine0:nth-of-type(25){stroke:#16a34a;stroke-width:2px} .messageLine0:nth-of-type(26){stroke:#16a34a;stroke-width:2px} .messageLine0:nth-of-type(27){stroke:#16a34a;stroke-width:2px} .messageLine0:nth-of-type(28){stroke:#16a34a;stroke-width:2px} .messageLine0:nth-of-type(29){stroke:#16a34a;stroke-width:2px} .messageText:nth-of-type(5){fill:#16a34a} .messageText:nth-of-type(6){fill:#16a34a} .messageText:nth-of-type(7){fill:#16a34a} .messageText:nth-of-type(15){fill:#16a34a} .messageText:nth-of-type(17){fill:#16a34a} .messageText:nth-of-type(18){fill:#16a34a} .messageText:nth-of-type(19){fill:#16a34a} .messageText:nth-of-type(20){fill:#16a34a} .messageText:nth-of-type(21){fill:#16a34a} .messageText:nth-of-type(22){fill:#16a34a} .messageText:nth-of-type(25){fill:#16a34a} .messageText:nth-of-type(26){fill:#16a34a} .messageText:nth-of-type(27){fill:#16a34a} .messageText:nth-of-type(28){fill:#16a34a} .messageText:nth-of-type(29){fill:#16a34a}"}}%% sequenceDiagram participant U as UpStream Repo participant G as GitHub App participant W as webhook_handler participant R as Redis participant D as DownStream Repo box rgba(187,247,208,0.5) participant RH as result_handler participant H as HUD end U->>G: PR/Push event trigger W<<->>G: Verify Signature W->>G: Require Allowlist W->>R: Cache Allowlist opt Scenario 1 U->>G: PR label add / L4 G->>W: W->>R: Cache PR info for check run end W->>G: Require DownStream Repos installation ID G->>W: Return installation ID W->>D: Passthrough payload to DownStream Repos D->>RH: In progress action call D<<->>RH: Verify payload with OIDC RH->>R: Check allowlist in redis R->>G: Fetch allowlist from GitHub if not in redis RH->>R: Cache action info RH->>H: Show in progress action on HUD opt Scenario 2 U->>G: PR label add G->>W: W->>R: Find action info W->>U: Create PR in_progress check run end opt Scenario 1 RH->>R: Find PR info record RH->U: Create PR in_progress check run end D->>RH: Completed action call RH->>H: Show completed action on HUD opt Scenario 1 & 2 RH->>U: Update PR completed check run end opt Scenario 3 U->>G: PR label add G->>W: W->>R: Find action info W->>U: Create PR completed check run end