From 5bed3eb589bca794c5dd4aad536a2925ca7d69ef Mon Sep 17 00:00:00 2001 From: dawn Date: Mon, 19 Oct 2026 17:03:32 +0300 Subject: [PATCH] sites/xrpc: trigger deploys through a vpc service binding when there is one Signed-off-by: dawn --- sites/src/xrpc.rs | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/sites/src/xrpc.rs b/sites/src/xrpc.rs index f4a095f5d..35a938282 100644 --- a/sites/src/xrpc.rs +++ b/sites/src/xrpc.rs @@ -474,13 +474,15 @@ fn trigger_deploy( target: DeployTarget, trigger: Option<&'static str>, ) -> DeployTrigger { - let Some(aud) = env + let url = env .var("SITES_SD_URL") .ok() .map(|v| v.to_string()) - .filter(|v| !v.is_empty()) - else { - console_warn!("deploy triggers are disabled: SITES_SD_URL is not set"); + .filter(|v| !v.is_empty()); + // the vpc binding ignores the host in the url, so any name works + let sitesd = env.service("SITES_SD").ok(); + let Some(aud) = url.or_else(|| sitesd.as_ref().map(|_| "http://sitesd".to_string())) else { + console_warn!("deploy triggers are disabled: neither SITES_SD_URL nor SITES_SD is set"); return DeployTrigger::Disabled; }; let url = format!("{}/deploy", aud.trim_end_matches('/')); @@ -503,7 +505,11 @@ fn trigger_deploy( record_unreached(&store, &target, trigger, "the deploy service address is not a URL").await; return; }; - match Fetch::Request(request).send().await { + let sent = match &sitesd { + Some(sitesd) => sitesd.fetch_request(request).await, + None => Fetch::Request(request).send().await, + }; + match sent { Ok(res) => { if trigger_answer(res.status_code()) == TriggerAnswer::Refused { let status = res.status_code(); -- 2.54.0