mirror of
				https://github.com/go-gitea/gitea
				synced 2025-11-04 05:18:25 +00:00 
			
		
		
		
	@@ -663,7 +663,7 @@ func AddReviewRequest(ctx context.Context, issue *Issue, reviewer, doer *user_mo
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if review != nil {
 | 
						if review != nil {
 | 
				
			||||||
		// skip it when reviewer hase been request to review
 | 
							// skip it when reviewer has been request to review
 | 
				
			||||||
		if review.Type == ReviewTypeRequest {
 | 
							if review.Type == ReviewTypeRequest {
 | 
				
			||||||
			return nil, committer.Commit() // still commit the transaction, or committer.Close() will rollback it, even if it's a reused transaction.
 | 
								return nil, committer.Commit() // still commit the transaction, or committer.Close() will rollback it, even if it's a reused transaction.
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -145,6 +145,9 @@ func PullRequestCodeOwnersReviewSpecialCommits(ctx context.Context, pr *issues_m
 | 
				
			|||||||
				log.Warn("Failed add assignee user: %s to PR review: %s#%d, error: %s", u.Name, pr.BaseRepo.Name, pr.ID, err)
 | 
									log.Warn("Failed add assignee user: %s to PR review: %s#%d, error: %s", u.Name, pr.BaseRepo.Name, pr.ID, err)
 | 
				
			||||||
				return nil, err
 | 
									return nil, err
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
 | 
								if comment == nil { // comment maybe nil if review type is ReviewTypeRequest
 | 
				
			||||||
 | 
									continue
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
			notifiers = append(notifiers, &ReviewRequestNotifier{
 | 
								notifiers = append(notifiers, &ReviewRequestNotifier{
 | 
				
			||||||
				Comment:  comment,
 | 
									Comment:  comment,
 | 
				
			||||||
				IsAdd:    true,
 | 
									IsAdd:    true,
 | 
				
			||||||
@@ -158,6 +161,9 @@ func PullRequestCodeOwnersReviewSpecialCommits(ctx context.Context, pr *issues_m
 | 
				
			|||||||
			log.Warn("Failed add assignee team: %s to PR review: %s#%d, error: %s", t.Name, pr.BaseRepo.Name, pr.ID, err)
 | 
								log.Warn("Failed add assignee team: %s to PR review: %s#%d, error: %s", t.Name, pr.BaseRepo.Name, pr.ID, err)
 | 
				
			||||||
			return nil, err
 | 
								return nil, err
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
							if comment == nil { // comment maybe nil if review type is ReviewTypeRequest
 | 
				
			||||||
 | 
								continue
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
		notifiers = append(notifiers, &ReviewRequestNotifier{
 | 
							notifiers = append(notifiers, &ReviewRequestNotifier{
 | 
				
			||||||
			Comment:    comment,
 | 
								Comment:    comment,
 | 
				
			||||||
			IsAdd:      true,
 | 
								IsAdd:      true,
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -8,7 +8,6 @@ import (
 | 
				
			|||||||
	"net/http/httptest"
 | 
						"net/http/httptest"
 | 
				
			||||||
	"net/url"
 | 
						"net/url"
 | 
				
			||||||
	"path"
 | 
						"path"
 | 
				
			||||||
	"sort"
 | 
					 | 
				
			||||||
	"strings"
 | 
						"strings"
 | 
				
			||||||
	"testing"
 | 
						"testing"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -76,7 +75,7 @@ func TestPullView_CodeOwner(t *testing.T) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
		t.Run("First Pull Request", func(t *testing.T) {
 | 
							t.Run("First Pull Request", func(t *testing.T) {
 | 
				
			||||||
			// create a new branch to prepare for pull request
 | 
								// create a new branch to prepare for pull request
 | 
				
			||||||
			resp1, err := files_service.ChangeRepoFiles(db.DefaultContext, repo, user2, &files_service.ChangeRepoFilesOptions{
 | 
								_, err := files_service.ChangeRepoFiles(db.DefaultContext, repo, user2, &files_service.ChangeRepoFilesOptions{
 | 
				
			||||||
				NewBranch: "codeowner-basebranch",
 | 
									NewBranch: "codeowner-basebranch",
 | 
				
			||||||
				Files: []*files_service.ChangeRepoFile{
 | 
									Files: []*files_service.ChangeRepoFile{
 | 
				
			||||||
					{
 | 
										{
 | 
				
			||||||
@@ -96,13 +95,8 @@ func TestPullView_CodeOwner(t *testing.T) {
 | 
				
			|||||||
			unittest.AssertExistsIf(t, true, &issues_model.Review{IssueID: pr.IssueID, Type: issues_model.ReviewTypeRequest, ReviewerID: 5})
 | 
								unittest.AssertExistsIf(t, true, &issues_model.Review{IssueID: pr.IssueID, Type: issues_model.ReviewTypeRequest, ReviewerID: 5})
 | 
				
			||||||
			assert.NoError(t, pr.LoadIssue(db.DefaultContext))
 | 
								assert.NoError(t, pr.LoadIssue(db.DefaultContext))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			reviewNotifiers, err := issue_service.PullRequestCodeOwnersReview(db.DefaultContext, pr)
 | 
					 | 
				
			||||||
			assert.NoError(t, err)
 | 
					 | 
				
			||||||
			assert.Len(t, reviewNotifiers, 1)
 | 
					 | 
				
			||||||
			assert.EqualValues(t, 5, reviewNotifiers[0].Reviewer.ID)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
			// update the file on the pr branch
 | 
								// update the file on the pr branch
 | 
				
			||||||
			resp2, err := files_service.ChangeRepoFiles(db.DefaultContext, repo, user2, &files_service.ChangeRepoFilesOptions{
 | 
								_, err = files_service.ChangeRepoFiles(db.DefaultContext, repo, user2, &files_service.ChangeRepoFilesOptions{
 | 
				
			||||||
				OldBranch: "codeowner-basebranch",
 | 
									OldBranch: "codeowner-basebranch",
 | 
				
			||||||
				Files: []*files_service.ChangeRepoFile{
 | 
									Files: []*files_service.ChangeRepoFile{
 | 
				
			||||||
					{
 | 
										{
 | 
				
			||||||
@@ -114,14 +108,7 @@ func TestPullView_CodeOwner(t *testing.T) {
 | 
				
			|||||||
			})
 | 
								})
 | 
				
			||||||
			assert.NoError(t, err)
 | 
								assert.NoError(t, err)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			reviewNotifiers, err = issue_service.PullRequestCodeOwnersReview(db.DefaultContext, pr)
 | 
								reviewNotifiers, err := issue_service.PullRequestCodeOwnersReview(db.DefaultContext, pr)
 | 
				
			||||||
			assert.NoError(t, err)
 | 
					 | 
				
			||||||
			assert.Len(t, reviewNotifiers, 2)
 | 
					 | 
				
			||||||
			reviewerIDs := []int64{reviewNotifiers[0].Reviewer.ID, reviewNotifiers[1].Reviewer.ID}
 | 
					 | 
				
			||||||
			sort.Slice(reviewerIDs, func(i, j int) bool { return reviewerIDs[i] < reviewerIDs[j] })
 | 
					 | 
				
			||||||
			assert.EqualValues(t, []int64{5, 8}, reviewerIDs)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
			reviewNotifiers, err = issue_service.PullRequestCodeOwnersReviewSpecialCommits(db.DefaultContext, pr, resp1.Commit.SHA, resp2.Commit.SHA)
 | 
					 | 
				
			||||||
			assert.NoError(t, err)
 | 
								assert.NoError(t, err)
 | 
				
			||||||
			assert.Len(t, reviewNotifiers, 1)
 | 
								assert.Len(t, reviewNotifiers, 1)
 | 
				
			||||||
			assert.EqualValues(t, 8, reviewNotifiers[0].Reviewer.ID)
 | 
								assert.EqualValues(t, 8, reviewNotifiers[0].Reviewer.ID)
 | 
				
			||||||
@@ -171,11 +158,6 @@ func TestPullView_CodeOwner(t *testing.T) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
			pr := unittest.AssertExistsAndLoadBean(t, &issues_model.PullRequest{BaseRepoID: repo.ID, HeadBranch: "codeowner-basebranch2"})
 | 
								pr := unittest.AssertExistsAndLoadBean(t, &issues_model.PullRequest{BaseRepoID: repo.ID, HeadBranch: "codeowner-basebranch2"})
 | 
				
			||||||
			unittest.AssertExistsAndLoadBean(t, &issues_model.Review{IssueID: pr.IssueID, Type: issues_model.ReviewTypeRequest, ReviewerID: 8})
 | 
								unittest.AssertExistsAndLoadBean(t, &issues_model.Review{IssueID: pr.IssueID, Type: issues_model.ReviewTypeRequest, ReviewerID: 8})
 | 
				
			||||||
 | 
					 | 
				
			||||||
			reviewNotifiers, err := issue_service.PullRequestCodeOwnersReview(db.DefaultContext, pr)
 | 
					 | 
				
			||||||
			assert.NoError(t, err)
 | 
					 | 
				
			||||||
			assert.Len(t, reviewNotifiers, 1)
 | 
					 | 
				
			||||||
			assert.EqualValues(t, 8, reviewNotifiers[0].Reviewer.ID)
 | 
					 | 
				
			||||||
		})
 | 
							})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		t.Run("Forked Repo Pull Request", func(t *testing.T) {
 | 
							t.Run("Forked Repo Pull Request", func(t *testing.T) {
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user