branch: main
commit 2f26d0ce23400ec8d3c7f2a6611089d29a7a344b
Author: Romain GARBAGE <[email protected]>
AuthorDate: Mon May 5 11:14:28 2025 +0200
http: Handle extra action events in '/admin/forgejo/event'.
* src/cuirass/http.scm (url-handler): Handle extra action events in
'/admin/forgejo/event'.
Signed-off-by: Ludovic Courtès <[email protected]>
---
src/cuirass/http.scm | 16 +++++++++++++---
1 file changed, 13 insertions(+), 3 deletions(-)
diff --git a/src/cuirass/http.scm b/src/cuirass/http.scm
index f976816..605753b 100644
--- a/src/cuirass/http.scm
+++ b/src/cuirass/http.scm
@@ -802,8 +802,9 @@ return DEFAULT."
(let* ((event (json->forgejo-pull-request-event params))
(pull-request (forgejo-pull-request-event-pull-request
event))
(spec (forgejo-pull-request->specification pull-request))
- (spec-name (specification-name spec)))
- (match (forgejo-pull-request-event-action event)
+ (spec-name (specification-name spec))
+ (action (forgejo-pull-request-event-action event)))
+ (match action
;; New pull request.
((or 'opened 'reopened)
(if (not (db-get-specification spec-name))
@@ -846,7 +847,16 @@ return DEFAULT."
(begin
(log-warning "evaluation hook disabled")
(respond-json-with-error 400 "Evaluation hook
disabled.")))
- (respond-json-with-error 404 "Jobset not found."))))))
+ (respond-json-with-error 404 "Jobset not found.")))
+ ;; Other action where nothing is done.
+ (_
+ (log-info "received action '~a' jobset '~a': nothing to do"
+ action spec-name)
+ (respond
+ (build-response #:code 200
+ #:headers
+ `((location . ,(string->uri-reference
"/"))))
+ #:body "")))))
(_ (respond-json-with-error 400 (format #f "Event type \"~a\" not
supported." event-type))))
(respond-json-with-error 400 "This API only supports JSON."))))