summaryrefslogtreecommitdiffstats
path: root/routers/api/v1/repo
diff options
context:
space:
mode:
Diffstat (limited to 'routers/api/v1/repo')
-rw-r--r--routers/api/v1/repo/mirror.go11
1 files changed, 11 insertions, 0 deletions
diff --git a/routers/api/v1/repo/mirror.go b/routers/api/v1/repo/mirror.go
index c9ac3e8292..d7facd24d9 100644
--- a/routers/api/v1/repo/mirror.go
+++ b/routers/api/v1/repo/mirror.go
@@ -5,8 +5,10 @@
package repo
import (
+ "errors"
"net/http"
+ repo_model "code.gitea.io/gitea/models/repo"
"code.gitea.io/gitea/models/unit"
"code.gitea.io/gitea/modules/context"
"code.gitea.io/gitea/modules/setting"
@@ -48,6 +50,15 @@ func MirrorSync(ctx *context.APIContext) {
return
}
+ if _, err := repo_model.GetMirrorByRepoID(repo.ID); err != nil {
+ if errors.Is(err, repo_model.ErrMirrorNotExist) {
+ ctx.Error(http.StatusBadRequest, "MirrorSync", "Repository is not a mirror")
+ return
+ }
+ ctx.Error(http.StatusInternalServerError, "MirrorSync", err)
+ return
+ }
+
mirror_service.StartToMirror(repo.ID)
ctx.Status(http.StatusOK)