diff --git a/appview/middleware/middleware.go b/appview/middleware/middleware.go index c82188d4..8ec71059 100644 --- a/appview/middleware/middleware.go +++ b/appview/middleware/middleware.go @@ -206,6 +206,8 @@ func (mw Middleware) ResolveRepo() middlewareFunc { return func(next http.Handler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { repoName := chi.URLParam(req, "repo") + repoName = strings.TrimSuffix(repoName, ".git") + id, ok := req.Context().Value("resolvedId").(identity.Identity) if !ok { log.Println("malformed middleware") diff --git a/appview/state/router.go b/appview/state/router.go index 84f47217..7aabd5a5 100644 --- a/appview/state/router.go +++ b/appview/state/router.go @@ -67,6 +67,7 @@ func (s *State) Router() http.Handler { http.Redirect(w, r, "/"+redirectPath, http.StatusFound) return } + } standardRouter.ServeHTTP(w, r) @@ -82,12 +83,6 @@ func (s *State) UserRouter(mw *middleware.Middleware) http.Handler { r.Get("/", s.Profile) r.Get("/feed.atom", s.AtomFeedPage) - // redirect /@handle/repo.git -> /@handle/repo - r.Get("/{repo}.git", func(w http.ResponseWriter, r *http.Request) { - nonDotGitPath := strings.TrimSuffix(r.URL.Path, ".git") - http.Redirect(w, r, nonDotGitPath, http.StatusMovedPermanently) - }) - r.With(mw.ResolveRepo()).Route("/{repo}", func(r chi.Router) { r.Use(mw.GoImport()) r.Mount("/", s.RepoRouter(mw))