3 Commits

Author SHA1 Message Date
Tom Alexander
1c082a5e24 Test: instantiate new clients for every request.
Some checks failed
semver Build semver has succeeded
format Build format has succeeded
build Build build has succeeded
clippy Build clippy has failed
rust-test Build rust-test has succeeded
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)
2024-09-29 21:58:05 -04:00
Tom Alexander
9ed8905a5c Always return status code ok.
All checks were successful
semver Build semver has succeeded
format Build format has succeeded
clippy Build clippy has succeeded
build Build build has succeeded
rust-test Build rust-test has succeeded
2024-09-29 18:37:23 -04:00
Tom Alexander
8cb28459a0 Fix clippy lint. 2024-09-29 18:31:47 -04:00
2 changed files with 28 additions and 6 deletions

View File

@@ -62,7 +62,7 @@ inherits = "release"
lto = true lto = true
strip = "symbols" strip = "symbols"
[profile.dev] [target.'cfg(target_os = "linux")'.profile.dev]
codegen-backend = "cranelift" codegen-backend = "cranelift"
[profile.dev.package."*"] [profile.dev.package."*"]

View File

@@ -42,9 +42,29 @@ pub(crate) async fn hook(
debug!("REQ: {:?}", payload); debug!("REQ: {:?}", payload);
match payload { match payload {
HookRequest::Push(webhook_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( let push_result = handle_push(
state.gitea, gitea,
state.kubernetes_client, kubernetes_client,
state.allowed_repos.borrow(), state.allowed_repos.borrow(),
webhook_payload, webhook_payload,
) )
@@ -58,16 +78,18 @@ pub(crate) async fn hook(
}), }),
), ),
Err(_) => ( Err(_) => (
StatusCode::INTERNAL_SERVER_ERROR, // StatusCode::INTERNAL_SERVER_ERROR,
StatusCode::OK,
Json(HookResponse { Json(HookResponse {
ok: false, ok: false,
message: Some(format!("Failed to handle push event.")), message: Some("Failed to handle push event.".to_string()),
}), }),
), ),
} }
} }
HookRequest::Unrecognized(payload) => ( HookRequest::Unrecognized(payload) => (
StatusCode::BAD_REQUEST, // StatusCode::BAD_REQUEST,
StatusCode::OK,
Json(HookResponse { Json(HookResponse {
ok: false, ok: false,
message: Some(format!("unrecognized event type: {payload}")), message: Some(format!("unrecognized event type: {payload}")),