diff --git a/lib/builder_web.ml b/lib/builder_web.ml index 56523ab..e277c5d 100644 --- a/lib/builder_web.ml +++ b/lib/builder_web.ml @@ -476,11 +476,23 @@ let add_routes datadir configdir = >>= fun () -> Dream.respond "" |> Lwt_result.ok in + let redirect_parent req = + let path = Dream.target req in + let parent = + String.split_on_char '/' |> + List.rev |> List.tl |> List.rev |> + String.concat "/" + in + Dream.redirect ~status:`Temporary_Redirect req (parent ^ "/") + in + let w f req = or_error_response (f req) in Dream.router [ Dream.get "/" (w builds); + Dream.get "/job" (w redirect_parent); Dream.get "/job/:job/" (w job); + Dream.get "/job/:job/build" (w redirect_parent); Dream.get "/job/:job/failed/" (w job_with_failed); Dream.get "/job/:job/build/latest/**" (w redirect_latest); Dream.get "/job/:job/build/:build/" (w job_build);