An attempt to sync a non-mirror repo must give 400 (Bad Request) (#19300)
* An attempt to sync a non-mirror repo must give 400 (Bad Request) * add missing return statement Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com> Co-authored-by: techknowlogick <techknowlogick@gitea.io>
This commit is contained in:
parent
4f27c28947
commit
43ff92e122
|
@ -405,6 +405,27 @@ func testAPIRepoMigrateConflict(t *testing.T, u *url.URL) {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// mirror-sync must fail with "400 (Bad Request)" when an attempt is made to
|
||||||
|
// sync a non-mirror repository.
|
||||||
|
func TestAPIMirrorSyncNonMirrorRepo(t *testing.T) {
|
||||||
|
defer prepareTestEnv(t)()
|
||||||
|
|
||||||
|
session := loginUser(t, "user2")
|
||||||
|
token := getTokenForLoggedInUser(t, session)
|
||||||
|
|
||||||
|
var repo api.Repository
|
||||||
|
req := NewRequest(t, "GET", "/api/v1/repos/user2/repo1")
|
||||||
|
resp := MakeRequest(t, req, http.StatusOK)
|
||||||
|
DecodeJSON(t, resp, &repo)
|
||||||
|
assert.EqualValues(t, false, repo.Mirror)
|
||||||
|
|
||||||
|
req = NewRequestf(t, "POST", "/api/v1/repos/user2/repo1/mirror-sync?token=%s", token)
|
||||||
|
resp = session.MakeRequest(t, req, http.StatusBadRequest)
|
||||||
|
errRespJSON := map[string]string{}
|
||||||
|
DecodeJSON(t, resp, &errRespJSON)
|
||||||
|
assert.Equal(t, "Repository is not a mirror", errRespJSON["message"])
|
||||||
|
}
|
||||||
|
|
||||||
func TestAPIOrgRepoCreate(t *testing.T) {
|
func TestAPIOrgRepoCreate(t *testing.T) {
|
||||||
testCases := []struct {
|
testCases := []struct {
|
||||||
ctxUserID int64
|
ctxUserID int64
|
||||||
|
|
|
@ -5,8 +5,10 @@
|
||||||
package repo
|
package repo
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"errors"
|
||||||
"net/http"
|
"net/http"
|
||||||
|
|
||||||
|
repo_model "code.gitea.io/gitea/models/repo"
|
||||||
"code.gitea.io/gitea/models/unit"
|
"code.gitea.io/gitea/models/unit"
|
||||||
"code.gitea.io/gitea/modules/context"
|
"code.gitea.io/gitea/modules/context"
|
||||||
"code.gitea.io/gitea/modules/setting"
|
"code.gitea.io/gitea/modules/setting"
|
||||||
|
@ -48,6 +50,15 @@ func MirrorSync(ctx *context.APIContext) {
|
||||||
return
|
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)
|
mirror_service.StartToMirror(repo.ID)
|
||||||
|
|
||||||
ctx.Status(http.StatusOK)
|
ctx.Status(http.StatusOK)
|
||||||
|
|
Loading…
Reference in New Issue