diff --git a/DockerFileSSH b/DockerFileSSH index b1e771e..12de78c 100644 --- a/DockerFileSSH +++ b/DockerFileSSH @@ -13,6 +13,9 @@ RUN mkdir -p /var/cache/nginx && chown -R nginx:nginx /var/cache/nginx && \ chown -R nginx:nginx /etc/nginx && \ chmod -R 777 /etc/nginx/conf.d && \ sed -i 's/user nginx;/#user nginx;/g' /etc/nginx/nginx.conf +RUN sed -i 's/listen 80;/listen 8080;/g' /etc/nginx/conf.d/default.conf +RUN sed -i 's/listen [::]:80;/listen [::]:8080;/g' /etc/nginx/conf.d/default.conf + USER nginx diff --git a/auth/gitee.go b/auth/gitee.go index fe9943f..31767df 100644 --- a/auth/gitee.go +++ b/auth/gitee.go @@ -231,7 +231,7 @@ func verifyUserDownload(giteeUser *giteeUser, userInRepo UserInRepo) error { func VerifySSHAuthToken(auth string, userInRepo UserInRepo) error { batchCheckRequest := batch.Request{ - Operation: "upload", + Operation: userInRepo.Operation, Transfers: []string{ "lfs-standalone-file", "basic", @@ -255,7 +255,7 @@ func VerifySSHAuthToken(auth string, userInRepo UserInRepo) error { return generateError(err, msg) } bodyReader := bytes.NewReader(jsonData) - path := fmt.Sprintf("https://gitee.com/%s/%s.git/info/lfs/objects/batch", userInRepo.Owner, userInRepo.Repo) + path := fmt.Sprintf("https://gitee.com/%s/%s/info/lfs/objects/batch", userInRepo.Owner, userInRepo.Repo) headers := http.Header{ accept: []string{"application/vnd.git-lfs+json"}, userAgent: []string{"git-lfs/3.5.1 (GitHub; linux amd64; go 1.21.8)"}, diff --git a/server/server.go b/server/server.go index 71bf78f..4d3b233 100644 --- a/server/server.go +++ b/server/server.go @@ -133,7 +133,7 @@ func (s *server) handleBatch(w http.ResponseWriter, r *http.Request) { userInRepo.Operation = req.Operation userInRepo.Owner = chi.URLParam(r, "owner") userInRepo.Repo = chi.URLParam(r, "repo") - + userInRepo.Repo = strings.TrimSuffix(userInRepo.Repo, ".git") if !validatecfg.ownerRegexp.MatchString(userInRepo.Owner) || !validatecfg.reponameRegexp.MatchString(userInRepo.Repo) { w.WriteHeader(http.StatusBadRequest) must(json.NewEncoder(w).Encode(batch.ErrorResponse{ @@ -142,15 +142,18 @@ func (s *server) handleBatch(w http.ResponseWriter, r *http.Request) { return } - if err = auth.CheckRepoOwner(userInRepo); req.Operation == "upload" || err != nil { + if err = auth.CheckRepoOwner(userInRepo); req.Operation == "upload" || + (err != nil && strings.HasPrefix(err.Error(), "not_found")) { err := s.dealWithAuthError(userInRepo, w, r) if err != nil { return } + } else if err != nil { + return + } else { + resp := s.handleRequestObject(req) + must(json.NewEncoder(w).Encode(resp)) } - - resp := s.handleRequestObject(req) - must(json.NewEncoder(w).Encode(resp)) } func (s *server) handleRequestObject(req batch.Request) batch.Response {