Bläddra i källkod

Respond to GitHub with a specific message if we ignored a request

Mark Rousskov 5 år sedan
förälder
incheckning
3f10006ac4
2 ändrade filer med 7 tillägg och 8 borttagningar
  1. 3 3
      src/lib.rs
  2. 4 5
      src/main.rs

+ 3 - 3
src/lib.rs

@@ -81,7 +81,7 @@ pub async fn webhook(
     event: EventName,
     payload: String,
     ctx: &handlers::Context,
-) -> Result<(), WebhookError> {
+) -> Result<bool, WebhookError> {
     let event = match event {
         EventName::PullRequestReview => {
             let payload = deserialize_payload::<github::PullRequestReviewEvent>(&payload)
@@ -143,7 +143,7 @@ pub async fn webhook(
         }
         // Other events need not be handled
         EventName::Other => {
-            return Ok(());
+            return Ok(false);
         }
     };
     if let Err(err) = handlers::handle(&ctx, &event).await {
@@ -162,5 +162,5 @@ pub async fn webhook(
             }
         }
     }
-    Ok(())
+    Ok(true)
 }

+ 4 - 5
src/main.rs

@@ -141,17 +141,16 @@ async fn serve_req(req: Request<Body>, ctx: Arc<Context>) -> Result<Response<Bod
     };
 
     match triagebot::webhook(event, payload, &ctx).await {
-        Ok(()) => {}
+        Ok(true) => Ok(Response::new(Body::from("processed request"))),
+        Ok(false) => Ok(Response::new(Body::from("ignored request"))),
         Err(err) => {
             log::error!("request failed: {:?}", err);
-            return Ok(Response::builder()
+            Ok(Response::builder()
                 .status(StatusCode::INTERNAL_SERVER_ERROR)
                 .body(Body::from(format!("request failed: {:?}", err)))
-                .unwrap());
+                .unwrap())
         }
     }
-
-    Ok(Response::new(Body::from("processed request")))
 }
 
 async fn run_server(addr: SocketAddr) -> anyhow::Result<()> {