This repository has no description
0

Configure Feed

Select the types of activity you want to include in your feed.

core / appview / pulls / router.go
1.7 kB 62 lines
1package pulls 2 3import ( 4 "net/http" 5 6 "github.com/go-chi/chi/v5" 7 "tangled.org/core/appview/middleware" 8 "tangled.org/core/appview/pipelines" 9) 10 11func (s *Pulls) Router(mw *middleware.Middleware) http.Handler { 12 r := chi.NewRouter() 13 r.With(middleware.Paginate).Get("/", s.RepoPulls) 14 r.Get("/pipeline-statuses", pipelines.StatusesHandler(s.oauth, s.repoResolver, s.pages, s.logger)) 15 r.With(middleware.AuthMiddleware(s.oauth)).Route("/new", func(r chi.Router) { 16 r.Get("/", s.NewPull) 17 r.Post("/", s.NewPull) 18 r.Post("/refresh", s.RefreshCompose) // TODO: remove this. we just have to refresh source & review steps 19 }) 20 r.Get("/_/composediff", s.PullComposeDiffFragment) 21 22 r.Route("/{pull}", func(r chi.Router) { 23 r.Use(s.ResolvePullMiddleware) 24 r.Get("/opengraph", s.PullOpenGraphSummary) 25 26 // PR routes 27 r.Get("/", s.RedirectLatestVersion) 28 r.Get("/{version}", s.PullSingle) 29 r.Get("/{version}/{revspec}", s.PullSingle) 30 r.Get("/{version}.patch", s.PullPatchRaw) 31 32 // htmx fragments 33 r.Get("/{version}/_/actions", s.PullActions) 34 35 r.Get("/_/diff", s.PullDiffFragment) 36 r.Get("/_/interdiff", s.PullInterdiffFragment) 37 38 r.Group(func(r chi.Router) { 39 r.Use(middleware.AuthMiddleware(s.oauth)) 40 r.Get("/edit", s.EditPull) 41 r.Post("/edit", s.EditPull) 42 r.Post("/resubmit", s.ResubmitPull) 43 r.Post("/close", s.ClosePull) 44 r.Post("/reopen", s.ReopenPull) 45 r.Post("/subscribe", s.SubscribePull) 46 // collaborators only 47 r.Group(func(r chi.Router) { 48 r.Use(mw.RepoPermissionMiddleware("repo:push")) 49 r.Post("/merge", s.MergePull) 50 // maybe lock, etc. 51 }) 52 53 r.Group(func(r chi.Router) { 54 r.Use(mw.RepoPermissionMiddleware("repo:push")) 55 r.Post("/trigger-ci", s.TriggerCi) 56 }) 57 }) 58 }) 59 60 return r 61 62}