From 1c082a5e24c0a5acfcbd9eaf6ef439efd6ad86b5 Mon Sep 17 00:00:00 2001 From: Tom Alexander Date: Sun, 29 Sep 2024 21:42:22 -0400 Subject: [PATCH] Test: instantiate new clients for every request. Trying to figure out why I am getting the below error occasionally in gitea: Delivery: Post "https://webhookbridge.fizz.buzz/hook": context deadline exceeded (Client.Timeout exceeded while awaiting headers) --- Cargo.toml | 2 +- src/webhook.rs | 24 ++++++++++++++++++++++-- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index c42128d..f8feed6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -62,7 +62,7 @@ inherits = "release" lto = true strip = "symbols" -[profile.dev] +[target.'cfg(target_os = "linux")'.profile.dev] codegen-backend = "cranelift" [profile.dev.package."*"] diff --git a/src/webhook.rs b/src/webhook.rs index 97c2059..5556afe 100644 --- a/src/webhook.rs +++ b/src/webhook.rs @@ -42,9 +42,29 @@ pub(crate) async fn hook( debug!("REQ: {:?}", payload); match payload { HookRequest::Push(webhook_payload) => { + let kubernetes_client: kube::Client = kube::Client::try_default() + .await + .expect("Set KUBECONFIG to a valid kubernetes config."); + + let gitea_api_root = std::env::var("WEBHOOK_BRIDGE_API_ROOT"); + let gitea_api_token = std::env::var("WEBHOOK_BRIDGE_OAUTH_TOKEN"); + let (gitea_api_root, gitea_api_token) = match (gitea_api_root, gitea_api_token) { + (Ok(r), Ok(t)) => (r, t), + _ => { + return ( + StatusCode::OK, + Json(HookResponse { + ok: true, + message: None, + }), + ); + } + }; + let gitea = GiteaClient::new(gitea_api_root, gitea_api_token); + let push_result = handle_push( - state.gitea, - state.kubernetes_client, + gitea, + kubernetes_client, state.allowed_repos.borrow(), webhook_payload, )