mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 16:40:24 +08:00 
			
		
		
		
	Move repository model into models/repo (#17933)
* Some refactors related repository model * Move more methods out of repository * Move repository into models/repo * Fix test * Fix test * some improvements * Remove unnecessary function
This commit is contained in:
		@@ -17,6 +17,7 @@ import (
 | 
			
		||||
	"time"
 | 
			
		||||
 | 
			
		||||
	"code.gitea.io/gitea/models"
 | 
			
		||||
	repo_model "code.gitea.io/gitea/models/repo"
 | 
			
		||||
	"code.gitea.io/gitea/models/unittest"
 | 
			
		||||
	user_model "code.gitea.io/gitea/models/user"
 | 
			
		||||
	"code.gitea.io/gitea/models/webhook"
 | 
			
		||||
@@ -29,7 +30,7 @@ import (
 | 
			
		||||
	"github.com/unknwon/i18n"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func testPullMerge(t *testing.T, session *TestSession, user, repo, pullnum string, mergeStyle models.MergeStyle) *httptest.ResponseRecorder {
 | 
			
		||||
func testPullMerge(t *testing.T, session *TestSession, user, repo, pullnum string, mergeStyle repo_model.MergeStyle) *httptest.ResponseRecorder {
 | 
			
		||||
	req := NewRequest(t, "GET", path.Join(user, repo, "pulls", pullnum))
 | 
			
		||||
	resp := session.MakeRequest(t, req, http.StatusOK)
 | 
			
		||||
 | 
			
		||||
@@ -76,7 +77,7 @@ func TestPullMerge(t *testing.T) {
 | 
			
		||||
 | 
			
		||||
		elem := strings.Split(test.RedirectURL(resp), "/")
 | 
			
		||||
		assert.EqualValues(t, "pulls", elem[3])
 | 
			
		||||
		testPullMerge(t, session, elem[1], elem[2], elem[4], models.MergeStyleMerge)
 | 
			
		||||
		testPullMerge(t, session, elem[1], elem[2], elem[4], repo_model.MergeStyleMerge)
 | 
			
		||||
 | 
			
		||||
		hookTasks, err = webhook.HookTasks(1, 1)
 | 
			
		||||
		assert.NoError(t, err)
 | 
			
		||||
@@ -98,7 +99,7 @@ func TestPullRebase(t *testing.T) {
 | 
			
		||||
 | 
			
		||||
		elem := strings.Split(test.RedirectURL(resp), "/")
 | 
			
		||||
		assert.EqualValues(t, "pulls", elem[3])
 | 
			
		||||
		testPullMerge(t, session, elem[1], elem[2], elem[4], models.MergeStyleRebase)
 | 
			
		||||
		testPullMerge(t, session, elem[1], elem[2], elem[4], repo_model.MergeStyleRebase)
 | 
			
		||||
 | 
			
		||||
		hookTasks, err = webhook.HookTasks(1, 1)
 | 
			
		||||
		assert.NoError(t, err)
 | 
			
		||||
@@ -120,7 +121,7 @@ func TestPullRebaseMerge(t *testing.T) {
 | 
			
		||||
 | 
			
		||||
		elem := strings.Split(test.RedirectURL(resp), "/")
 | 
			
		||||
		assert.EqualValues(t, "pulls", elem[3])
 | 
			
		||||
		testPullMerge(t, session, elem[1], elem[2], elem[4], models.MergeStyleRebaseMerge)
 | 
			
		||||
		testPullMerge(t, session, elem[1], elem[2], elem[4], repo_model.MergeStyleRebaseMerge)
 | 
			
		||||
 | 
			
		||||
		hookTasks, err = webhook.HookTasks(1, 1)
 | 
			
		||||
		assert.NoError(t, err)
 | 
			
		||||
@@ -143,7 +144,7 @@ func TestPullSquash(t *testing.T) {
 | 
			
		||||
 | 
			
		||||
		elem := strings.Split(test.RedirectURL(resp), "/")
 | 
			
		||||
		assert.EqualValues(t, "pulls", elem[3])
 | 
			
		||||
		testPullMerge(t, session, elem[1], elem[2], elem[4], models.MergeStyleSquash)
 | 
			
		||||
		testPullMerge(t, session, elem[1], elem[2], elem[4], repo_model.MergeStyleSquash)
 | 
			
		||||
 | 
			
		||||
		hookTasks, err = webhook.HookTasks(1, 1)
 | 
			
		||||
		assert.NoError(t, err)
 | 
			
		||||
@@ -161,7 +162,7 @@ func TestPullCleanUpAfterMerge(t *testing.T) {
 | 
			
		||||
 | 
			
		||||
		elem := strings.Split(test.RedirectURL(resp), "/")
 | 
			
		||||
		assert.EqualValues(t, "pulls", elem[3])
 | 
			
		||||
		testPullMerge(t, session, elem[1], elem[2], elem[4], models.MergeStyleMerge)
 | 
			
		||||
		testPullMerge(t, session, elem[1], elem[2], elem[4], repo_model.MergeStyleMerge)
 | 
			
		||||
 | 
			
		||||
		// Check PR branch deletion
 | 
			
		||||
		resp = testPullCleanUp(t, session, elem[1], elem[2], elem[4])
 | 
			
		||||
@@ -225,10 +226,10 @@ func TestCantMergeConflict(t *testing.T) {
 | 
			
		||||
		user1 := unittest.AssertExistsAndLoadBean(t, &user_model.User{
 | 
			
		||||
			Name: "user1",
 | 
			
		||||
		}).(*user_model.User)
 | 
			
		||||
		repo1 := unittest.AssertExistsAndLoadBean(t, &models.Repository{
 | 
			
		||||
		repo1 := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{
 | 
			
		||||
			OwnerID: user1.ID,
 | 
			
		||||
			Name:    "repo1",
 | 
			
		||||
		}).(*models.Repository)
 | 
			
		||||
		}).(*repo_model.Repository)
 | 
			
		||||
 | 
			
		||||
		pr := unittest.AssertExistsAndLoadBean(t, &models.PullRequest{
 | 
			
		||||
			HeadRepoID: repo1.ID,
 | 
			
		||||
@@ -237,14 +238,14 @@ func TestCantMergeConflict(t *testing.T) {
 | 
			
		||||
			BaseBranch: "base",
 | 
			
		||||
		}).(*models.PullRequest)
 | 
			
		||||
 | 
			
		||||
		gitRepo, err := git.OpenRepository(models.RepoPath(user1.Name, repo1.Name))
 | 
			
		||||
		gitRepo, err := git.OpenRepository(repo_model.RepoPath(user1.Name, repo1.Name))
 | 
			
		||||
		assert.NoError(t, err)
 | 
			
		||||
 | 
			
		||||
		err = pull.Merge(pr, user1, gitRepo, models.MergeStyleMerge, "CONFLICT")
 | 
			
		||||
		err = pull.Merge(pr, user1, gitRepo, repo_model.MergeStyleMerge, "CONFLICT")
 | 
			
		||||
		assert.Error(t, err, "Merge should return an error due to conflict")
 | 
			
		||||
		assert.True(t, models.IsErrMergeConflicts(err), "Merge error is not a conflict error")
 | 
			
		||||
 | 
			
		||||
		err = pull.Merge(pr, user1, gitRepo, models.MergeStyleRebase, "CONFLICT")
 | 
			
		||||
		err = pull.Merge(pr, user1, gitRepo, repo_model.MergeStyleRebase, "CONFLICT")
 | 
			
		||||
		assert.Error(t, err, "Merge should return an error due to conflict")
 | 
			
		||||
		assert.True(t, models.IsErrRebaseConflicts(err), "Merge error is not a conflict error")
 | 
			
		||||
		gitRepo.Close()
 | 
			
		||||
@@ -262,11 +263,11 @@ func TestCantMergeUnrelated(t *testing.T) {
 | 
			
		||||
		user1 := unittest.AssertExistsAndLoadBean(t, &user_model.User{
 | 
			
		||||
			Name: "user1",
 | 
			
		||||
		}).(*user_model.User)
 | 
			
		||||
		repo1 := unittest.AssertExistsAndLoadBean(t, &models.Repository{
 | 
			
		||||
		repo1 := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{
 | 
			
		||||
			OwnerID: user1.ID,
 | 
			
		||||
			Name:    "repo1",
 | 
			
		||||
		}).(*models.Repository)
 | 
			
		||||
		path := models.RepoPath(user1.Name, repo1.Name)
 | 
			
		||||
		}).(*repo_model.Repository)
 | 
			
		||||
		path := repo_model.RepoPath(user1.Name, repo1.Name)
 | 
			
		||||
 | 
			
		||||
		_, err := git.NewCommand("read-tree", "--empty").RunInDir(path)
 | 
			
		||||
		assert.NoError(t, err)
 | 
			
		||||
@@ -328,7 +329,7 @@ func TestCantMergeUnrelated(t *testing.T) {
 | 
			
		||||
			BaseBranch: "base",
 | 
			
		||||
		}).(*models.PullRequest)
 | 
			
		||||
 | 
			
		||||
		err = pull.Merge(pr, user1, gitRepo, models.MergeStyleMerge, "UNRELATED")
 | 
			
		||||
		err = pull.Merge(pr, user1, gitRepo, repo_model.MergeStyleMerge, "UNRELATED")
 | 
			
		||||
		assert.Error(t, err, "Merge should return an error due to unrelated")
 | 
			
		||||
		assert.True(t, models.IsErrMergeUnrelatedHistories(err), "Merge error is not a unrelated histories error")
 | 
			
		||||
		gitRepo.Close()
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user