mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 16:40:24 +08:00 
			
		
		
		
	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:
		@@ -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)
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user