mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 08:30:25 +08:00 
			
		
		
		
	Move checks for pulls before merge into own function (#19271)
This make checks in one single place so they dont differ and maintainer can not forget a check in one place while adding it to the other .... ( as it's atm ) Fix: * The API does ignore issue dependencies where Web does not * The API checks if "IsSignedIfRequired" where Web does not - UI probably do but nothing will some to craft custom requests * Default merge message is crafted a bit different between API and Web if not set on specific cases ...
This commit is contained in:
		@@ -222,22 +222,19 @@ func (pr *PullRequest) loadProtectedBranch(ctx context.Context) (err error) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// GetDefaultMergeMessage returns default message used when merging pull request
 | 
			
		||||
func (pr *PullRequest) GetDefaultMergeMessage() string {
 | 
			
		||||
func (pr *PullRequest) GetDefaultMergeMessage() (string, error) {
 | 
			
		||||
	if pr.HeadRepo == nil {
 | 
			
		||||
		var err error
 | 
			
		||||
		pr.HeadRepo, err = repo_model.GetRepositoryByID(pr.HeadRepoID)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			log.Error("GetRepositoryById[%d]: %v", pr.HeadRepoID, err)
 | 
			
		||||
			return ""
 | 
			
		||||
			return "", fmt.Errorf("GetRepositoryById[%d]: %v", pr.HeadRepoID, err)
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	if err := pr.LoadIssue(); err != nil {
 | 
			
		||||
		log.Error("Cannot load issue %d for PR id %d: Error: %v", pr.IssueID, pr.ID, err)
 | 
			
		||||
		return ""
 | 
			
		||||
		return "", fmt.Errorf("Cannot load issue %d for PR id %d: Error: %v", pr.IssueID, pr.ID, err)
 | 
			
		||||
	}
 | 
			
		||||
	if err := pr.LoadBaseRepo(); err != nil {
 | 
			
		||||
		log.Error("LoadBaseRepo: %v", err)
 | 
			
		||||
		return ""
 | 
			
		||||
		return "", fmt.Errorf("LoadBaseRepo: %v", err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	issueReference := "#"
 | 
			
		||||
@@ -246,10 +243,10 @@ func (pr *PullRequest) GetDefaultMergeMessage() string {
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if pr.BaseRepoID == pr.HeadRepoID {
 | 
			
		||||
		return fmt.Sprintf("Merge pull request '%s' (%s%d) from %s into %s", pr.Issue.Title, issueReference, pr.Issue.Index, pr.HeadBranch, pr.BaseBranch)
 | 
			
		||||
		return fmt.Sprintf("Merge pull request '%s' (%s%d) from %s into %s", pr.Issue.Title, issueReference, pr.Issue.Index, pr.HeadBranch, pr.BaseBranch), nil
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return fmt.Sprintf("Merge pull request '%s' (%s%d) from %s:%s into %s", pr.Issue.Title, issueReference, pr.Issue.Index, pr.HeadRepo.FullName(), pr.HeadBranch, pr.BaseBranch)
 | 
			
		||||
	return fmt.Sprintf("Merge pull request '%s' (%s%d) from %s:%s into %s", pr.Issue.Title, issueReference, pr.Issue.Index, pr.HeadRepo.FullName(), pr.HeadBranch, pr.BaseBranch), nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ReviewCount represents a count of Reviews
 | 
			
		||||
@@ -335,19 +332,17 @@ func (pr *PullRequest) getReviewedByLines(writer io.Writer) error {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// GetDefaultSquashMessage returns default message used when squash and merging pull request
 | 
			
		||||
func (pr *PullRequest) GetDefaultSquashMessage() string {
 | 
			
		||||
func (pr *PullRequest) GetDefaultSquashMessage() (string, error) {
 | 
			
		||||
	if err := pr.LoadIssue(); err != nil {
 | 
			
		||||
		log.Error("LoadIssue: %v", err)
 | 
			
		||||
		return ""
 | 
			
		||||
		return "", fmt.Errorf("LoadIssue: %v", err)
 | 
			
		||||
	}
 | 
			
		||||
	if err := pr.LoadBaseRepo(); err != nil {
 | 
			
		||||
		log.Error("LoadBaseRepo: %v", err)
 | 
			
		||||
		return ""
 | 
			
		||||
		return "", fmt.Errorf("LoadBaseRepo: %v", err)
 | 
			
		||||
	}
 | 
			
		||||
	if pr.BaseRepo.UnitEnabled(unit.TypeExternalTracker) {
 | 
			
		||||
		return fmt.Sprintf("%s (!%d)", pr.Issue.Title, pr.Issue.Index)
 | 
			
		||||
		return fmt.Sprintf("%s (!%d)", pr.Issue.Title, pr.Issue.Index), nil
 | 
			
		||||
	}
 | 
			
		||||
	return fmt.Sprintf("%s (#%d)", pr.Issue.Title, pr.Issue.Index)
 | 
			
		||||
	return fmt.Sprintf("%s (#%d)", pr.Issue.Title, pr.Issue.Index), nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// GetGitRefName returns git ref for hidden pull request branch
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user