mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-11-03 20:36:07 +01:00 
			
		
		
		
	Rename pull request GetGitRefName to GetGitHeadRefName (#35093)
This commit is contained in:
		@@ -414,7 +414,7 @@ func (pr *PullRequest) getReviewedByLines(ctx context.Context, writer io.Writer)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// GetGitRefName returns git ref for hidden pull request branch
 | 
			
		||||
func (pr *PullRequest) GetGitRefName() string {
 | 
			
		||||
func (pr *PullRequest) GetGitHeadRefName() string {
 | 
			
		||||
	return fmt.Sprintf("%s%d/head", git.PullPrefix, pr.Index)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -50,7 +50,7 @@ func (p *PullRequest) IsForkPullRequest() bool {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// GetGitRefName returns pull request relative path to head
 | 
			
		||||
func (p PullRequest) GetGitRefName() string {
 | 
			
		||||
func (p PullRequest) GetGitHeadRefName() string {
 | 
			
		||||
	return fmt.Sprintf("%s%d/head", git.PullPrefix, p.Number)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1461,9 +1461,9 @@ func GetPullRequestCommits(ctx *context.APIContext) {
 | 
			
		||||
	defer closer.Close()
 | 
			
		||||
 | 
			
		||||
	if pr.HasMerged {
 | 
			
		||||
		prInfo, err = baseGitRepo.GetCompareInfo(pr.BaseRepo.RepoPath(), pr.MergeBase, pr.GetGitRefName(), false, false)
 | 
			
		||||
		prInfo, err = baseGitRepo.GetCompareInfo(pr.BaseRepo.RepoPath(), pr.MergeBase, pr.GetGitHeadRefName(), false, false)
 | 
			
		||||
	} else {
 | 
			
		||||
		prInfo, err = baseGitRepo.GetCompareInfo(pr.BaseRepo.RepoPath(), pr.BaseBranch, pr.GetGitRefName(), false, false)
 | 
			
		||||
		prInfo, err = baseGitRepo.GetCompareInfo(pr.BaseRepo.RepoPath(), pr.BaseBranch, pr.GetGitHeadRefName(), false, false)
 | 
			
		||||
	}
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		ctx.APIErrorInternal(err)
 | 
			
		||||
@@ -1584,16 +1584,16 @@ func GetPullRequestFiles(ctx *context.APIContext) {
 | 
			
		||||
 | 
			
		||||
	var prInfo *git.CompareInfo
 | 
			
		||||
	if pr.HasMerged {
 | 
			
		||||
		prInfo, err = baseGitRepo.GetCompareInfo(pr.BaseRepo.RepoPath(), pr.MergeBase, pr.GetGitRefName(), true, false)
 | 
			
		||||
		prInfo, err = baseGitRepo.GetCompareInfo(pr.BaseRepo.RepoPath(), pr.MergeBase, pr.GetGitHeadRefName(), true, false)
 | 
			
		||||
	} else {
 | 
			
		||||
		prInfo, err = baseGitRepo.GetCompareInfo(pr.BaseRepo.RepoPath(), pr.BaseBranch, pr.GetGitRefName(), true, false)
 | 
			
		||||
		prInfo, err = baseGitRepo.GetCompareInfo(pr.BaseRepo.RepoPath(), pr.BaseBranch, pr.GetGitHeadRefName(), true, false)
 | 
			
		||||
	}
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		ctx.APIErrorInternal(err)
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	headCommitID, err := baseGitRepo.GetRefCommitID(pr.GetGitRefName())
 | 
			
		||||
	headCommitID, err := baseGitRepo.GetRefCommitID(pr.GetGitHeadRefName())
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		ctx.APIErrorInternal(err)
 | 
			
		||||
		return
 | 
			
		||||
 
 | 
			
		||||
@@ -336,7 +336,7 @@ func CreatePullReview(ctx *context.APIContext) {
 | 
			
		||||
		}
 | 
			
		||||
		defer closer.Close()
 | 
			
		||||
 | 
			
		||||
		headCommitID, err := gitRepo.GetRefCommitID(pr.GetGitRefName())
 | 
			
		||||
		headCommitID, err := gitRepo.GetRefCommitID(pr.GetGitHeadRefName())
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			ctx.APIErrorInternal(err)
 | 
			
		||||
			return
 | 
			
		||||
@@ -455,7 +455,7 @@ func SubmitPullReview(ctx *context.APIContext) {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	headCommitID, err := ctx.Repo.GitRepo.GetRefCommitID(pr.GetGitRefName())
 | 
			
		||||
	headCommitID, err := ctx.Repo.GitRepo.GetRefCommitID(pr.GetGitHeadRefName())
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		ctx.APIErrorInternal(err)
 | 
			
		||||
		return
 | 
			
		||||
 
 | 
			
		||||
@@ -103,7 +103,7 @@ func NewComment(ctx *context.Context) {
 | 
			
		||||
				// check whether the ref of PR <refs/pulls/pr_index/head> in base repo is consistent with the head commit of head branch in the head repo
 | 
			
		||||
				// get head commit of PR
 | 
			
		||||
				if pull.Flow == issues_model.PullRequestFlowGithub {
 | 
			
		||||
					prHeadRef := pull.GetGitRefName()
 | 
			
		||||
					prHeadRef := pull.GetGitHeadRefName()
 | 
			
		||||
					if err := pull.LoadBaseRepo(ctx); err != nil {
 | 
			
		||||
						ctx.ServerError("Unable to load base repo", err)
 | 
			
		||||
						return
 | 
			
		||||
 
 | 
			
		||||
@@ -492,7 +492,7 @@ func preparePullViewSigning(ctx *context.Context, issue *issues_model.Issue) {
 | 
			
		||||
	pull := issue.PullRequest
 | 
			
		||||
	ctx.Data["WillSign"] = false
 | 
			
		||||
	if ctx.Doer != nil {
 | 
			
		||||
		sign, key, _, err := asymkey_service.SignMerge(ctx, pull, ctx.Doer, pull.BaseRepo.RepoPath(), pull.BaseBranch, pull.GetGitRefName())
 | 
			
		||||
		sign, key, _, err := asymkey_service.SignMerge(ctx, pull, ctx.Doer, pull.BaseRepo.RepoPath(), pull.BaseBranch, pull.GetGitHeadRefName())
 | 
			
		||||
		ctx.Data["WillSign"] = sign
 | 
			
		||||
		ctx.Data["SigningKey"] = key
 | 
			
		||||
		if err != nil {
 | 
			
		||||
 
 | 
			
		||||
@@ -196,7 +196,7 @@ func GetPullDiffStats(ctx *context.Context) {
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// do not report 500 server error to end users if error occurs, otherwise a PR missing ref won't be able to view.
 | 
			
		||||
	headCommitID, err := ctx.Repo.GitRepo.GetRefCommitID(pull.GetGitRefName())
 | 
			
		||||
	headCommitID, err := ctx.Repo.GitRepo.GetRefCommitID(pull.GetGitHeadRefName())
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		log.Error("Failed to GetRefCommitID: %v, repo: %v", err, ctx.Repo.Repository.FullName())
 | 
			
		||||
		return
 | 
			
		||||
@@ -218,13 +218,13 @@ func GetMergedBaseCommitID(ctx *context.Context, issue *issues_model.Issue) stri
 | 
			
		||||
	if pull.MergeBase == "" {
 | 
			
		||||
		var commitSHA, parentCommit string
 | 
			
		||||
		// If there is a head or a patch file, and it is readable, grab info
 | 
			
		||||
		commitSHA, err := ctx.Repo.GitRepo.GetRefCommitID(pull.GetGitRefName())
 | 
			
		||||
		commitSHA, err := ctx.Repo.GitRepo.GetRefCommitID(pull.GetGitHeadRefName())
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			// Head File does not exist, try the patch
 | 
			
		||||
			commitSHA, err = ctx.Repo.GitRepo.ReadPatchCommit(pull.Index)
 | 
			
		||||
			if err == nil {
 | 
			
		||||
				// Recreate pull head in files for next time
 | 
			
		||||
				if err := ctx.Repo.GitRepo.SetReference(pull.GetGitRefName(), commitSHA); err != nil {
 | 
			
		||||
				if err := ctx.Repo.GitRepo.SetReference(pull.GetGitHeadRefName(), commitSHA); err != nil {
 | 
			
		||||
					log.Error("Could not write head file", err)
 | 
			
		||||
				}
 | 
			
		||||
			} else {
 | 
			
		||||
@@ -274,7 +274,7 @@ func prepareMergedViewPullInfo(ctx *context.Context, issue *issues_model.Issue)
 | 
			
		||||
	baseCommit := GetMergedBaseCommitID(ctx, issue)
 | 
			
		||||
 | 
			
		||||
	compareInfo, err := ctx.Repo.GitRepo.GetCompareInfo(ctx.Repo.Repository.RepoPath(),
 | 
			
		||||
		baseCommit, pull.GetGitRefName(), false, false)
 | 
			
		||||
		baseCommit, pull.GetGitHeadRefName(), false, false)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		if strings.Contains(err.Error(), "fatal: Not a valid object name") || strings.Contains(err.Error(), "unknown revision or path not in the working tree") {
 | 
			
		||||
			ctx.Data["IsPullRequestBroken"] = true
 | 
			
		||||
@@ -354,9 +354,9 @@ func prepareViewPullInfo(ctx *context.Context, issue *issues_model.Issue) *git.C
 | 
			
		||||
		ctx.Data["BaseTarget"] = pull.BaseBranch
 | 
			
		||||
		ctx.Data["HeadTarget"] = pull.HeadBranch
 | 
			
		||||
 | 
			
		||||
		sha, err := baseGitRepo.GetRefCommitID(pull.GetGitRefName())
 | 
			
		||||
		sha, err := baseGitRepo.GetRefCommitID(pull.GetGitHeadRefName())
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			ctx.ServerError(fmt.Sprintf("GetRefCommitID(%s)", pull.GetGitRefName()), err)
 | 
			
		||||
			ctx.ServerError(fmt.Sprintf("GetRefCommitID(%s)", pull.GetGitHeadRefName()), err)
 | 
			
		||||
			return nil
 | 
			
		||||
		}
 | 
			
		||||
		commitStatuses, err := git_model.GetLatestCommitStatus(ctx, repo.ID, sha, db.ListOptionsAll)
 | 
			
		||||
@@ -374,7 +374,7 @@ func prepareViewPullInfo(ctx *context.Context, issue *issues_model.Issue) *git.C
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		compareInfo, err := baseGitRepo.GetCompareInfo(pull.BaseRepo.RepoPath(),
 | 
			
		||||
			pull.MergeBase, pull.GetGitRefName(), false, false)
 | 
			
		||||
			pull.MergeBase, pull.GetGitHeadRefName(), false, false)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			if strings.Contains(err.Error(), "fatal: Not a valid object name") {
 | 
			
		||||
				ctx.Data["IsPullRequestBroken"] = true
 | 
			
		||||
@@ -407,12 +407,12 @@ func prepareViewPullInfo(ctx *context.Context, issue *issues_model.Issue) *git.C
 | 
			
		||||
		if pull.Flow == issues_model.PullRequestFlowGithub {
 | 
			
		||||
			headBranchExist = gitrepo.IsBranchExist(ctx, pull.HeadRepo, pull.HeadBranch)
 | 
			
		||||
		} else {
 | 
			
		||||
			headBranchExist = gitrepo.IsReferenceExist(ctx, pull.BaseRepo, pull.GetGitRefName())
 | 
			
		||||
			headBranchExist = gitrepo.IsReferenceExist(ctx, pull.BaseRepo, pull.GetGitHeadRefName())
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		if headBranchExist {
 | 
			
		||||
			if pull.Flow != issues_model.PullRequestFlowGithub {
 | 
			
		||||
				headBranchSha, err = baseGitRepo.GetRefCommitID(pull.GetGitRefName())
 | 
			
		||||
				headBranchSha, err = baseGitRepo.GetRefCommitID(pull.GetGitHeadRefName())
 | 
			
		||||
			} else {
 | 
			
		||||
				headBranchSha, err = headGitRepo.GetBranchCommitID(pull.HeadBranch)
 | 
			
		||||
			}
 | 
			
		||||
@@ -435,7 +435,7 @@ func prepareViewPullInfo(ctx *context.Context, issue *issues_model.Issue) *git.C
 | 
			
		||||
		ctx.Data["GetCommitMessages"] = ""
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	sha, err := baseGitRepo.GetRefCommitID(pull.GetGitRefName())
 | 
			
		||||
	sha, err := baseGitRepo.GetRefCommitID(pull.GetGitHeadRefName())
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		if git.IsErrNotExist(err) {
 | 
			
		||||
			ctx.Data["IsPullRequestBroken"] = true
 | 
			
		||||
@@ -451,7 +451,7 @@ func prepareViewPullInfo(ctx *context.Context, issue *issues_model.Issue) *git.C
 | 
			
		||||
			ctx.Data["NumFiles"] = 0
 | 
			
		||||
			return nil
 | 
			
		||||
		}
 | 
			
		||||
		ctx.ServerError(fmt.Sprintf("GetRefCommitID(%s)", pull.GetGitRefName()), err)
 | 
			
		||||
		ctx.ServerError(fmt.Sprintf("GetRefCommitID(%s)", pull.GetGitHeadRefName()), err)
 | 
			
		||||
		return nil
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
@@ -522,7 +522,7 @@ func prepareViewPullInfo(ctx *context.Context, issue *issues_model.Issue) *git.C
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	compareInfo, err := baseGitRepo.GetCompareInfo(pull.BaseRepo.RepoPath(),
 | 
			
		||||
		git.BranchPrefix+pull.BaseBranch, pull.GetGitRefName(), false, false)
 | 
			
		||||
		git.BranchPrefix+pull.BaseBranch, pull.GetGitHeadRefName(), false, false)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		if strings.Contains(err.Error(), "fatal: Not a valid object name") {
 | 
			
		||||
			ctx.Data["IsPullRequestBroken"] = true
 | 
			
		||||
@@ -698,7 +698,7 @@ func viewPullFiles(ctx *context.Context, specifiedStartCommit, specifiedEndCommi
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	headCommitID, err := gitRepo.GetRefCommitID(pull.GetGitRefName())
 | 
			
		||||
	headCommitID, err := gitRepo.GetRefCommitID(pull.GetGitHeadRefName())
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		ctx.ServerError("GetRefCommitID", err)
 | 
			
		||||
		return
 | 
			
		||||
@@ -1509,7 +1509,7 @@ func CleanUpPullRequest(ctx *context.Context) {
 | 
			
		||||
	}()
 | 
			
		||||
 | 
			
		||||
	// Check if branch has no new commits
 | 
			
		||||
	headCommitID, err := gitBaseRepo.GetRefCommitID(pr.GetGitRefName())
 | 
			
		||||
	headCommitID, err := gitBaseRepo.GetRefCommitID(pr.GetGitHeadRefName())
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		log.Error("GetRefCommitID: %v", err)
 | 
			
		||||
		ctx.Flash.Error(ctx.Tr("repo.branch.deletion_failed", fullBranchName))
 | 
			
		||||
 
 | 
			
		||||
@@ -49,7 +49,7 @@ func RenderNewCodeCommentForm(ctx *context.Context) {
 | 
			
		||||
	ctx.Data["PageIsPullFiles"] = true
 | 
			
		||||
	ctx.Data["Issue"] = issue
 | 
			
		||||
	ctx.Data["CurrentReview"] = currentReview
 | 
			
		||||
	pullHeadCommitID, err := ctx.Repo.GitRepo.GetRefCommitID(issue.PullRequest.GetGitRefName())
 | 
			
		||||
	pullHeadCommitID, err := ctx.Repo.GitRepo.GetRefCommitID(issue.PullRequest.GetGitHeadRefName())
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		ctx.ServerError("GetRefCommitID", err)
 | 
			
		||||
		return
 | 
			
		||||
@@ -199,7 +199,7 @@ func renderConversation(ctx *context.Context, comment *issues_model.Comment, ori
 | 
			
		||||
		ctx.ServerError("comment.Issue.LoadPullRequest", err)
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	pullHeadCommitID, err := ctx.Repo.GitRepo.GetRefCommitID(comment.Issue.PullRequest.GetGitRefName())
 | 
			
		||||
	pullHeadCommitID, err := ctx.Repo.GitRepo.GetRefCommitID(comment.Issue.PullRequest.GetGitHeadRefName())
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		ctx.ServerError("GetRefCommitID", err)
 | 
			
		||||
		return
 | 
			
		||||
 
 | 
			
		||||
@@ -104,7 +104,7 @@ func (input *notifyInput) WithPayload(payload api.Payloader) *notifyInput {
 | 
			
		||||
func (input *notifyInput) WithPullRequest(pr *issues_model.PullRequest) *notifyInput {
 | 
			
		||||
	input.PullRequest = pr
 | 
			
		||||
	if input.Ref == "" {
 | 
			
		||||
		input.Ref = git.RefName(pr.GetGitRefName())
 | 
			
		||||
		input.Ref = git.RefName(pr.GetGitHeadRefName())
 | 
			
		||||
	}
 | 
			
		||||
	return input
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -165,7 +165,7 @@ func ProcReceive(ctx context.Context, repo *repo_model.Repository, gitRepo *git.
 | 
			
		||||
			log.Trace("Pull request created: %d/%d", repo.ID, prIssue.ID)
 | 
			
		||||
 | 
			
		||||
			results = append(results, private.HookProcReceiveRefResult{
 | 
			
		||||
				Ref:               pr.GetGitRefName(),
 | 
			
		||||
				Ref:               pr.GetGitHeadRefName(),
 | 
			
		||||
				OriginalRef:       opts.RefFullNames[i],
 | 
			
		||||
				OldOID:            objectFormat.EmptyObjectID().String(),
 | 
			
		||||
				NewOID:            opts.NewCommitIDs[i],
 | 
			
		||||
@@ -182,7 +182,7 @@ func ProcReceive(ctx context.Context, repo *repo_model.Repository, gitRepo *git.
 | 
			
		||||
			return nil, fmt.Errorf("unable to load base repository for PR[%d] Error: %w", pr.ID, err)
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		oldCommitID, err := gitRepo.GetRefCommitID(pr.GetGitRefName())
 | 
			
		||||
		oldCommitID, err := gitRepo.GetRefCommitID(pr.GetGitHeadRefName())
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return nil, fmt.Errorf("unable to get ref commit id in base repository for PR[%d] Error: %w", pr.ID, err)
 | 
			
		||||
		}
 | 
			
		||||
@@ -260,7 +260,7 @@ func ProcReceive(ctx context.Context, repo *repo_model.Repository, gitRepo *git.
 | 
			
		||||
		results = append(results, private.HookProcReceiveRefResult{
 | 
			
		||||
			OldOID:            oldCommitID,
 | 
			
		||||
			NewOID:            opts.NewCommitIDs[i],
 | 
			
		||||
			Ref:               pr.GetGitRefName(),
 | 
			
		||||
			Ref:               pr.GetGitHeadRefName(),
 | 
			
		||||
			OriginalRef:       opts.RefFullNames[i],
 | 
			
		||||
			IsForcePush:       isForcePush,
 | 
			
		||||
			IsCreatePR:        false,
 | 
			
		||||
 
 | 
			
		||||
@@ -187,7 +187,7 @@ func handlePullRequestAutoMerge(pullID int64, sha string) {
 | 
			
		||||
	}
 | 
			
		||||
	defer baseGitRepo.Close()
 | 
			
		||||
 | 
			
		||||
	headCommitID, err := baseGitRepo.GetRefCommitID(pr.GetGitRefName())
 | 
			
		||||
	headCommitID, err := baseGitRepo.GetRefCommitID(pr.GetGitHeadRefName())
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		log.Error("GetRefCommitID: %v", err)
 | 
			
		||||
		return
 | 
			
		||||
@@ -225,7 +225,7 @@ func handlePullRequestAutoMerge(pullID int64, sha string) {
 | 
			
		||||
			return
 | 
			
		||||
		}
 | 
			
		||||
	case issues_model.PullRequestFlowAGit:
 | 
			
		||||
		headBranchExist := gitrepo.IsReferenceExist(ctx, pr.BaseRepo, pr.GetGitRefName())
 | 
			
		||||
		headBranchExist := gitrepo.IsReferenceExist(ctx, pr.BaseRepo, pr.GetGitHeadRefName())
 | 
			
		||||
		if !headBranchExist {
 | 
			
		||||
			log.Warn("Head branch of auto merge %-v does not exist [HeadRepoID: %d, Branch(Agit): %s]", pr, pr.HeadRepoID, pr.HeadBranch)
 | 
			
		||||
			return
 | 
			
		||||
 
 | 
			
		||||
@@ -39,7 +39,7 @@ func StartPRCheckAndAutoMerge(ctx context.Context, pull *issues_model.PullReques
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	defer gitRepo.Close()
 | 
			
		||||
	commitID, err := gitRepo.GetRefCommitID(pull.GetGitRefName())
 | 
			
		||||
	commitID, err := gitRepo.GetRefCommitID(pull.GetGitHeadRefName())
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		log.Error("GetRefCommitID: %v", err)
 | 
			
		||||
		return
 | 
			
		||||
 
 | 
			
		||||
@@ -112,7 +112,7 @@ func ToAPIPullRequest(ctx context.Context, pr *issues_model.PullRequest, doer *u
 | 
			
		||||
		},
 | 
			
		||||
		Head: &api.PRBranchInfo{
 | 
			
		||||
			Name:   pr.HeadBranch,
 | 
			
		||||
			Ref:    fmt.Sprintf("%s%d/head", git.PullPrefix, pr.Index),
 | 
			
		||||
			Ref:    pr.GetGitHeadRefName(),
 | 
			
		||||
			RepoID: -1,
 | 
			
		||||
		},
 | 
			
		||||
	}
 | 
			
		||||
@@ -170,9 +170,9 @@ func ToAPIPullRequest(ctx context.Context, pr *issues_model.PullRequest, doer *u
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if pr.Flow == issues_model.PullRequestFlowAGit {
 | 
			
		||||
		apiPullRequest.Head.Sha, err = gitRepo.GetRefCommitID(pr.GetGitRefName())
 | 
			
		||||
		apiPullRequest.Head.Sha, err = gitRepo.GetRefCommitID(pr.GetGitHeadRefName())
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			log.Error("GetRefCommitID[%s]: %v", pr.GetGitRefName(), err)
 | 
			
		||||
			log.Error("GetRefCommitID[%s]: %v", pr.GetGitHeadRefName(), err)
 | 
			
		||||
			return nil
 | 
			
		||||
		}
 | 
			
		||||
		apiPullRequest.Head.RepoID = pr.BaseRepoID
 | 
			
		||||
@@ -383,7 +383,7 @@ func ToAPIPullRequests(ctx context.Context, baseRepo *repo_model.Repository, prs
 | 
			
		||||
			},
 | 
			
		||||
			Head: &api.PRBranchInfo{
 | 
			
		||||
				Name:   pr.HeadBranch,
 | 
			
		||||
				Ref:    pr.GetGitRefName(),
 | 
			
		||||
				Ref:    pr.GetGitHeadRefName(),
 | 
			
		||||
				RepoID: -1,
 | 
			
		||||
			},
 | 
			
		||||
		}
 | 
			
		||||
@@ -444,15 +444,15 @@ func ToAPIPullRequests(ctx context.Context, baseRepo *repo_model.Repository, prs
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		if apiPullRequest.Head.Ref == "" {
 | 
			
		||||
			apiPullRequest.Head.Ref = pr.GetGitRefName()
 | 
			
		||||
			apiPullRequest.Head.Ref = pr.GetGitHeadRefName()
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		if pr.Flow == issues_model.PullRequestFlowAGit {
 | 
			
		||||
			apiPullRequest.Head.Name = ""
 | 
			
		||||
		}
 | 
			
		||||
		apiPullRequest.Head.Sha, err = gitRepo.GetRefCommitID(pr.GetGitRefName())
 | 
			
		||||
		apiPullRequest.Head.Sha, err = gitRepo.GetRefCommitID(pr.GetGitHeadRefName())
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			log.Error("GetRefCommitID[%s]: %v", pr.GetGitRefName(), err)
 | 
			
		||||
			log.Error("GetRefCommitID[%s]: %v", pr.GetGitHeadRefName(), err)
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		if len(apiPullRequest.Head.Sha) == 0 && len(apiPullRequest.Head.Ref) != 0 {
 | 
			
		||||
 
 | 
			
		||||
@@ -42,7 +42,7 @@ func checkPRMergeBase(ctx context.Context, logger log.Logger, autofix bool) erro
 | 
			
		||||
 | 
			
		||||
			if !pr.HasMerged {
 | 
			
		||||
				var err error
 | 
			
		||||
				pr.MergeBase, _, err = git.NewCommand("merge-base").AddDashesAndList(pr.BaseBranch, pr.GetGitRefName()).RunStdString(ctx, &git.RunOpts{Dir: repoPath})
 | 
			
		||||
				pr.MergeBase, _, err = git.NewCommand("merge-base").AddDashesAndList(pr.BaseBranch, pr.GetGitHeadRefName()).RunStdString(ctx, &git.RunOpts{Dir: repoPath})
 | 
			
		||||
				if err != nil {
 | 
			
		||||
					var err2 error
 | 
			
		||||
					pr.MergeBase, _, err2 = git.NewCommand("rev-parse").AddDynamicArguments(git.BranchPrefix+pr.BaseBranch).RunStdString(ctx, &git.RunOpts{Dir: repoPath})
 | 
			
		||||
@@ -63,7 +63,7 @@ func checkPRMergeBase(ctx context.Context, logger log.Logger, autofix bool) erro
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				refs := append([]string{}, parents[1:]...)
 | 
			
		||||
				refs = append(refs, pr.GetGitRefName())
 | 
			
		||||
				refs = append(refs, pr.GetGitHeadRefName())
 | 
			
		||||
				cmd := git.NewCommand("merge-base").AddDashesAndList(refs...)
 | 
			
		||||
				pr.MergeBase, _, err = cmd.RunStdString(ctx, &git.RunOpts{Dir: repoPath})
 | 
			
		||||
				if err != nil {
 | 
			
		||||
 
 | 
			
		||||
@@ -200,7 +200,7 @@ func DeleteIssue(ctx context.Context, doer *user_model.User, gitRepo *git.Reposi
 | 
			
		||||
 | 
			
		||||
	// delete pull request related git data
 | 
			
		||||
	if issue.IsPull && gitRepo != nil {
 | 
			
		||||
		if err := gitRepo.RemoveReference(fmt.Sprintf("%s%d/head", git.PullPrefix, issue.PullRequest.Index)); err != nil {
 | 
			
		||||
		if err := gitRepo.RemoveReference(issue.PullRequest.GetGitHeadRefName()); err != nil {
 | 
			
		||||
			return err
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
@@ -97,14 +97,14 @@ func PullRequestCodeOwnersReview(ctx context.Context, pr *issues_model.PullReque
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// get the mergebase
 | 
			
		||||
	mergeBase, err := getMergeBase(repo, pr, git.BranchPrefix+pr.BaseBranch, pr.GetGitRefName())
 | 
			
		||||
	mergeBase, err := getMergeBase(repo, pr, git.BranchPrefix+pr.BaseBranch, pr.GetGitHeadRefName())
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// https://github.com/go-gitea/gitea/issues/29763, we need to get the files changed
 | 
			
		||||
	// between the merge base and the head commit but not the base branch and the head commit
 | 
			
		||||
	changedFiles, err := repo.GetFilesChangedBetween(mergeBase, pr.GetGitRefName())
 | 
			
		||||
	changedFiles, err := repo.GetFilesChangedBetween(mergeBase, pr.GetGitHeadRefName())
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
@@ -488,7 +488,7 @@ func (g *RepositoryDumper) handlePullRequest(ctx context.Context, pr *base.PullR
 | 
			
		||||
	if pr.Head.CloneURL == "" || pr.Head.Ref == "" {
 | 
			
		||||
		// Set head information if pr.Head.SHA is available
 | 
			
		||||
		if pr.Head.SHA != "" {
 | 
			
		||||
			_, _, err = git.NewCommand("update-ref", "--no-deref").AddDynamicArguments(pr.GetGitRefName(), pr.Head.SHA).RunStdString(ctx, &git.RunOpts{Dir: g.gitPath()})
 | 
			
		||||
			_, _, err = git.NewCommand("update-ref", "--no-deref").AddDynamicArguments(pr.GetGitHeadRefName(), pr.Head.SHA).RunStdString(ctx, &git.RunOpts{Dir: g.gitPath()})
 | 
			
		||||
			if err != nil {
 | 
			
		||||
				log.Error("PR #%d in %s/%s unable to update-ref for pr HEAD: %v", pr.Number, g.repoOwner, g.repoName, err)
 | 
			
		||||
			}
 | 
			
		||||
@@ -518,7 +518,7 @@ func (g *RepositoryDumper) handlePullRequest(ctx context.Context, pr *base.PullR
 | 
			
		||||
	if !ok {
 | 
			
		||||
		// Set head information if pr.Head.SHA is available
 | 
			
		||||
		if pr.Head.SHA != "" {
 | 
			
		||||
			_, _, err = git.NewCommand("update-ref", "--no-deref").AddDynamicArguments(pr.GetGitRefName(), pr.Head.SHA).RunStdString(ctx, &git.RunOpts{Dir: g.gitPath()})
 | 
			
		||||
			_, _, err = git.NewCommand("update-ref", "--no-deref").AddDynamicArguments(pr.GetGitHeadRefName(), pr.Head.SHA).RunStdString(ctx, &git.RunOpts{Dir: g.gitPath()})
 | 
			
		||||
			if err != nil {
 | 
			
		||||
				log.Error("PR #%d in %s/%s unable to update-ref for pr HEAD: %v", pr.Number, g.repoOwner, g.repoName, err)
 | 
			
		||||
			}
 | 
			
		||||
@@ -577,7 +577,7 @@ func (g *RepositoryDumper) handlePullRequest(ctx context.Context, pr *base.PullR
 | 
			
		||||
		pr.Head.SHA = headSha
 | 
			
		||||
	}
 | 
			
		||||
	if pr.Head.SHA != "" {
 | 
			
		||||
		_, _, err = git.NewCommand("update-ref", "--no-deref").AddDynamicArguments(pr.GetGitRefName(), pr.Head.SHA).RunStdString(ctx, &git.RunOpts{Dir: g.gitPath()})
 | 
			
		||||
		_, _, err = git.NewCommand("update-ref", "--no-deref").AddDynamicArguments(pr.GetGitHeadRefName(), pr.Head.SHA).RunStdString(ctx, &git.RunOpts{Dir: g.gitPath()})
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			log.Error("unable to set %s as the local head for PR #%d from %s in %s/%s. Error: %v", pr.Head.SHA, pr.Number, pr.Head.Ref, g.repoOwner, g.repoName, err)
 | 
			
		||||
		}
 | 
			
		||||
 
 | 
			
		||||
@@ -681,7 +681,7 @@ func (g *GiteaLocalUploader) updateGitForPullRequest(ctx context.Context, pr *ba
 | 
			
		||||
			pr.Head.SHA = headSha
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		_, _, err = git.NewCommand("update-ref", "--no-deref").AddDynamicArguments(pr.GetGitRefName(), pr.Head.SHA).RunStdString(ctx, &git.RunOpts{Dir: g.repo.RepoPath()})
 | 
			
		||||
		_, _, err = git.NewCommand("update-ref", "--no-deref").AddDynamicArguments(pr.GetGitHeadRefName(), pr.Head.SHA).RunStdString(ctx, &git.RunOpts{Dir: g.repo.RepoPath()})
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return "", err
 | 
			
		||||
		}
 | 
			
		||||
@@ -701,10 +701,10 @@ func (g *GiteaLocalUploader) updateGitForPullRequest(ctx context.Context, pr *ba
 | 
			
		||||
		_, _, err = git.NewCommand("rev-list", "--quiet", "-1").AddDynamicArguments(pr.Head.SHA).RunStdString(ctx, &git.RunOpts{Dir: g.repo.RepoPath()})
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			// Git update-ref remove bad references with a relative path
 | 
			
		||||
			log.Warn("Deprecated local head %s for PR #%d in %s/%s, removing  %s", pr.Head.SHA, pr.Number, g.repoOwner, g.repoName, pr.GetGitRefName())
 | 
			
		||||
			log.Warn("Deprecated local head %s for PR #%d in %s/%s, removing  %s", pr.Head.SHA, pr.Number, g.repoOwner, g.repoName, pr.GetGitHeadRefName())
 | 
			
		||||
		} else {
 | 
			
		||||
			// set head information
 | 
			
		||||
			_, _, err = git.NewCommand("update-ref", "--no-deref").AddDynamicArguments(pr.GetGitRefName(), pr.Head.SHA).RunStdString(ctx, &git.RunOpts{Dir: g.repo.RepoPath()})
 | 
			
		||||
			_, _, err = git.NewCommand("update-ref", "--no-deref").AddDynamicArguments(pr.GetGitHeadRefName(), pr.Head.SHA).RunStdString(ctx, &git.RunOpts{Dir: g.repo.RepoPath()})
 | 
			
		||||
			if err != nil {
 | 
			
		||||
				log.Error("unable to set %s as the local head for PR #%d from %s in %s/%s. Error: %v", pr.Head.SHA, pr.Number, pr.Head.Ref, g.repoOwner, g.repoName, err)
 | 
			
		||||
			}
 | 
			
		||||
@@ -880,9 +880,9 @@ func (g *GiteaLocalUploader) CreateReviews(ctx context.Context, reviews ...*base
 | 
			
		||||
			continue
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		headCommitID, err := g.gitRepo.GetRefCommitID(pr.GetGitRefName())
 | 
			
		||||
		headCommitID, err := g.gitRepo.GetRefCommitID(pr.GetGitHeadRefName())
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			log.Warn("PR #%d GetRefCommitID[%s] in %s/%s: %v, all review comments will be ignored", pr.Index, pr.GetGitRefName(), g.repoOwner, g.repoName, err)
 | 
			
		||||
			log.Warn("PR #%d GetRefCommitID[%s] in %s/%s: %v, all review comments will be ignored", pr.Index, pr.GetGitHeadRefName(), g.repoOwner, g.repoName, err)
 | 
			
		||||
			continue
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -231,7 +231,7 @@ func isSignedIfRequired(ctx context.Context, pr *issues_model.PullRequest, doer
 | 
			
		||||
		return true, nil
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	sign, _, _, err := asymkey_service.SignMerge(ctx, pr, doer, pr.BaseRepo.RepoPath(), pr.BaseBranch, pr.GetGitRefName())
 | 
			
		||||
	sign, _, _, err := asymkey_service.SignMerge(ctx, pr, doer, pr.BaseRepo.RepoPath(), pr.BaseBranch, pr.GetGitHeadRefName())
 | 
			
		||||
 | 
			
		||||
	return sign, err
 | 
			
		||||
}
 | 
			
		||||
@@ -277,7 +277,7 @@ func getMergeCommit(ctx context.Context, pr *issues_model.PullRequest) (*git.Com
 | 
			
		||||
		return nil, fmt.Errorf("unable to load base repo for %s: %w", pr, err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	prHeadRef := pr.GetGitRefName()
 | 
			
		||||
	prHeadRef := pr.GetGitHeadRefName()
 | 
			
		||||
 | 
			
		||||
	// Check if the pull request is merged into BaseBranch
 | 
			
		||||
	if _, _, err := git.NewCommand("merge-base", "--is-ancestor").
 | 
			
		||||
 
 | 
			
		||||
@@ -99,7 +99,7 @@ func GetPullRequestCommitStatusState(ctx context.Context, pr *issues_model.PullR
 | 
			
		||||
	if pr.Flow == issues_model.PullRequestFlowGithub && !gitrepo.IsBranchExist(ctx, pr.HeadRepo, pr.HeadBranch) {
 | 
			
		||||
		return "", errors.New("Head branch does not exist, can not merge")
 | 
			
		||||
	}
 | 
			
		||||
	if pr.Flow == issues_model.PullRequestFlowAGit && !gitrepo.IsReferenceExist(ctx, pr.HeadRepo, pr.GetGitRefName()) {
 | 
			
		||||
	if pr.Flow == issues_model.PullRequestFlowAGit && !gitrepo.IsReferenceExist(ctx, pr.HeadRepo, pr.GetGitHeadRefName()) {
 | 
			
		||||
		return "", errors.New("Head branch does not exist, can not merge")
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
@@ -107,7 +107,7 @@ func GetPullRequestCommitStatusState(ctx context.Context, pr *issues_model.PullR
 | 
			
		||||
	if pr.Flow == issues_model.PullRequestFlowGithub {
 | 
			
		||||
		sha, err = headGitRepo.GetBranchCommitID(pr.HeadBranch)
 | 
			
		||||
	} else {
 | 
			
		||||
		sha, err = headGitRepo.GetRefCommitID(pr.GetGitRefName())
 | 
			
		||||
		sha, err = headGitRepo.GetRefCommitID(pr.GetGitHeadRefName())
 | 
			
		||||
	}
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return "", err
 | 
			
		||||
 
 | 
			
		||||
@@ -41,7 +41,7 @@ func DownloadDiffOrPatch(ctx context.Context, pr *issues_model.PullRequest, w io
 | 
			
		||||
	}
 | 
			
		||||
	defer closer.Close()
 | 
			
		||||
 | 
			
		||||
	compareArg := pr.MergeBase + "..." + pr.GetGitRefName()
 | 
			
		||||
	compareArg := pr.MergeBase + "..." + pr.GetGitHeadRefName()
 | 
			
		||||
	switch {
 | 
			
		||||
	case patch:
 | 
			
		||||
		err = gitRepo.GetPatch(compareArg, w)
 | 
			
		||||
 
 | 
			
		||||
@@ -143,7 +143,7 @@ func NewPullRequest(ctx context.Context, opts *NewPullRequestOptions) error {
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		compareInfo, err := baseGitRepo.GetCompareInfo(pr.BaseRepo.RepoPath(),
 | 
			
		||||
			git.BranchPrefix+pr.BaseBranch, pr.GetGitRefName(), false, false)
 | 
			
		||||
			git.BranchPrefix+pr.BaseBranch, pr.GetGitHeadRefName(), false, false)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return err
 | 
			
		||||
		}
 | 
			
		||||
@@ -184,7 +184,7 @@ func NewPullRequest(ctx context.Context, opts *NewPullRequestOptions) error {
 | 
			
		||||
		return nil
 | 
			
		||||
	}); err != nil {
 | 
			
		||||
		// cleanup: this will only remove the reference, the real commit will be clean up when next GC
 | 
			
		||||
		if err1 := baseGitRepo.RemoveReference(pr.GetGitRefName()); err1 != nil {
 | 
			
		||||
		if err1 := baseGitRepo.RemoveReference(pr.GetGitHeadRefName()); err1 != nil {
 | 
			
		||||
			log.Error("RemoveReference: %v", err1)
 | 
			
		||||
		}
 | 
			
		||||
		return err
 | 
			
		||||
@@ -567,7 +567,7 @@ func PushToBaseRepo(ctx context.Context, pr *issues_model.PullRequest) (err erro
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func pushToBaseRepoHelper(ctx context.Context, pr *issues_model.PullRequest, prefixHeadBranch string) (err error) {
 | 
			
		||||
	log.Trace("PushToBaseRepo[%d]: pushing commits to base repo '%s'", pr.BaseRepoID, pr.GetGitRefName())
 | 
			
		||||
	log.Trace("PushToBaseRepo[%d]: pushing commits to base repo '%s'", pr.BaseRepoID, pr.GetGitHeadRefName())
 | 
			
		||||
 | 
			
		||||
	if err := pr.LoadHeadRepo(ctx); err != nil {
 | 
			
		||||
		log.Error("Unable to load head repository for PR[%d] Error: %v", pr.ID, err)
 | 
			
		||||
@@ -588,7 +588,7 @@ func pushToBaseRepoHelper(ctx context.Context, pr *issues_model.PullRequest, pre
 | 
			
		||||
		return fmt.Errorf("unable to load poster %d for pr %d: %w", pr.Issue.PosterID, pr.ID, err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	gitRefName := pr.GetGitRefName()
 | 
			
		||||
	gitRefName := pr.GetGitHeadRefName()
 | 
			
		||||
 | 
			
		||||
	if err := git.Push(ctx, headRepoPath, git.PushOptions{
 | 
			
		||||
		Remote: baseRepoPath,
 | 
			
		||||
@@ -642,13 +642,13 @@ func UpdatePullsRefs(ctx context.Context, repo *repo_model.Repository, update *r
 | 
			
		||||
 | 
			
		||||
// UpdateRef update refs/pull/id/head directly for agit flow pull request
 | 
			
		||||
func UpdateRef(ctx context.Context, pr *issues_model.PullRequest) (err error) {
 | 
			
		||||
	log.Trace("UpdateRef[%d]: upgate pull request ref in base repo '%s'", pr.ID, pr.GetGitRefName())
 | 
			
		||||
	log.Trace("UpdateRef[%d]: upgate pull request ref in base repo '%s'", pr.ID, pr.GetGitHeadRefName())
 | 
			
		||||
	if err := pr.LoadBaseRepo(ctx); err != nil {
 | 
			
		||||
		log.Error("Unable to load base repository for PR[%d] Error: %v", pr.ID, err)
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	_, _, err = git.NewCommand("update-ref").AddDynamicArguments(pr.GetGitRefName(), pr.HeadCommitID).RunStdString(ctx, &git.RunOpts{Dir: pr.BaseRepo.RepoPath()})
 | 
			
		||||
	_, _, err = git.NewCommand("update-ref").AddDynamicArguments(pr.GetGitHeadRefName(), pr.HeadCommitID).RunStdString(ctx, &git.RunOpts{Dir: pr.BaseRepo.RepoPath()})
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		log.Error("Unable to update ref in base repository for PR[%d] Error: %v", pr.ID, err)
 | 
			
		||||
	}
 | 
			
		||||
@@ -816,9 +816,9 @@ func GetSquashMergeCommitMessages(ctx context.Context, pr *issues_model.PullRequ
 | 
			
		||||
	if pr.Flow == issues_model.PullRequestFlowGithub {
 | 
			
		||||
		headCommit, err = gitRepo.GetBranchCommit(pr.HeadBranch)
 | 
			
		||||
	} else {
 | 
			
		||||
		pr.HeadCommitID, err = gitRepo.GetRefCommitID(pr.GetGitRefName())
 | 
			
		||||
		pr.HeadCommitID, err = gitRepo.GetRefCommitID(pr.GetGitHeadRefName())
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			log.Error("Unable to get head commit: %s Error: %v", pr.GetGitRefName(), err)
 | 
			
		||||
			log.Error("Unable to get head commit: %s Error: %v", pr.GetGitHeadRefName(), err)
 | 
			
		||||
			return ""
 | 
			
		||||
		}
 | 
			
		||||
		headCommit, err = gitRepo.GetCommit(pr.HeadCommitID)
 | 
			
		||||
@@ -993,7 +993,7 @@ func GetIssuesAllCommitStatus(ctx context.Context, issues issues_model.IssueList
 | 
			
		||||
 | 
			
		||||
// getAllCommitStatus get pr's commit statuses.
 | 
			
		||||
func getAllCommitStatus(ctx context.Context, gitRepo *git.Repository, pr *issues_model.PullRequest) (statuses []*git_model.CommitStatus, lastStatus *git_model.CommitStatus, err error) {
 | 
			
		||||
	sha, shaErr := gitRepo.GetRefCommitID(pr.GetGitRefName())
 | 
			
		||||
	sha, shaErr := gitRepo.GetRefCommitID(pr.GetGitHeadRefName())
 | 
			
		||||
	if shaErr != nil {
 | 
			
		||||
		return nil, nil, shaErr
 | 
			
		||||
	}
 | 
			
		||||
@@ -1043,7 +1043,7 @@ func IsHeadEqualWithBranch(ctx context.Context, pr *issues_model.PullRequest, br
 | 
			
		||||
			return false, err
 | 
			
		||||
		}
 | 
			
		||||
	} else {
 | 
			
		||||
		pr.HeadCommitID, err = baseGitRepo.GetRefCommitID(pr.GetGitRefName())
 | 
			
		||||
		pr.HeadCommitID, err = baseGitRepo.GetRefCommitID(pr.GetGitHeadRefName())
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return false, err
 | 
			
		||||
		}
 | 
			
		||||
@@ -1077,7 +1077,7 @@ func GetPullCommits(ctx *gitea_context.Context, issue *issues_model.Issue) ([]Co
 | 
			
		||||
	if pull.HasMerged {
 | 
			
		||||
		baseBranch = pull.MergeBase
 | 
			
		||||
	}
 | 
			
		||||
	prInfo, err := baseGitRepo.GetCompareInfo(pull.BaseRepo.RepoPath(), baseBranch, pull.GetGitRefName(), true, false)
 | 
			
		||||
	prInfo, err := baseGitRepo.GetCompareInfo(pull.BaseRepo.RepoPath(), baseBranch, pull.GetGitHeadRefName(), true, false)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, "", err
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
@@ -200,7 +200,7 @@ func createCodeComment(ctx context.Context, doer *user_model.User, repo *repo_mo
 | 
			
		||||
	defer closer.Close()
 | 
			
		||||
 | 
			
		||||
	invalidated := false
 | 
			
		||||
	head := pr.GetGitRefName()
 | 
			
		||||
	head := pr.GetGitHeadRefName()
 | 
			
		||||
	if line > 0 {
 | 
			
		||||
		if reviewID != 0 {
 | 
			
		||||
			first, err := issues_model.FindComments(ctx, &issues_model.FindCommentsOptions{
 | 
			
		||||
@@ -237,16 +237,16 @@ func createCodeComment(ctx context.Context, doer *user_model.User, repo *repo_mo
 | 
			
		||||
			if err == nil {
 | 
			
		||||
				commitID = commit.ID.String()
 | 
			
		||||
			} else if !(strings.Contains(err.Error(), "exit status 128 - fatal: no such path") || notEnoughLines.MatchString(err.Error())) {
 | 
			
		||||
				return nil, fmt.Errorf("LineBlame[%s, %s, %s, %d]: %w", pr.GetGitRefName(), gitRepo.Path, treePath, line, err)
 | 
			
		||||
				return nil, fmt.Errorf("LineBlame[%s, %s, %s, %d]: %w", pr.GetGitHeadRefName(), gitRepo.Path, treePath, line, err)
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Only fetch diff if comment is review comment
 | 
			
		||||
	if len(patch) == 0 && reviewID != 0 {
 | 
			
		||||
		headCommitID, err := gitRepo.GetRefCommitID(pr.GetGitRefName())
 | 
			
		||||
		headCommitID, err := gitRepo.GetRefCommitID(pr.GetGitHeadRefName())
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return nil, fmt.Errorf("GetRefCommitID[%s]: %w", pr.GetGitRefName(), err)
 | 
			
		||||
			return nil, fmt.Errorf("GetRefCommitID[%s]: %w", pr.GetGitHeadRefName(), err)
 | 
			
		||||
		}
 | 
			
		||||
		if len(commitID) == 0 {
 | 
			
		||||
			commitID = headCommitID
 | 
			
		||||
@@ -301,7 +301,7 @@ func SubmitReview(ctx context.Context, doer *user_model.User, gitRepo *git.Repos
 | 
			
		||||
			return nil, nil, ErrSubmitReviewOnClosedPR
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		headCommitID, err := gitRepo.GetRefCommitID(pr.GetGitRefName())
 | 
			
		||||
		headCommitID, err := gitRepo.GetRefCommitID(pr.GetGitHeadRefName())
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return nil, nil, err
 | 
			
		||||
		}
 | 
			
		||||
 
 | 
			
		||||
@@ -174,7 +174,7 @@ func createTemporaryRepoForPR(ctx context.Context, pr *issues_model.PullRequest)
 | 
			
		||||
	} else if len(pr.HeadCommitID) == objectFormat.FullLength() { // for not created pull request
 | 
			
		||||
		headBranch = pr.HeadCommitID
 | 
			
		||||
	} else {
 | 
			
		||||
		headBranch = pr.GetGitRefName()
 | 
			
		||||
		headBranch = pr.GetGitHeadRefName()
 | 
			
		||||
	}
 | 
			
		||||
	if err := git.NewCommand("fetch").AddArguments(fetchArgs...).AddDynamicArguments(remoteRepoName, headBranch+":"+trackingBranch).
 | 
			
		||||
		Run(ctx, prCtx.RunOpts()); err != nil {
 | 
			
		||||
 
 | 
			
		||||
@@ -233,7 +233,7 @@ func loadOneBranch(ctx context.Context, repo *repo_model.Repository, dbBranch *g
 | 
			
		||||
				defer baseGitRepo.Close()
 | 
			
		||||
				repoIDToGitRepo[pr.BaseRepoID] = baseGitRepo
 | 
			
		||||
			}
 | 
			
		||||
			pullCommit, err := baseGitRepo.GetRefCommitID(pr.GetGitRefName())
 | 
			
		||||
			pullCommit, err := baseGitRepo.GetRefCommitID(pr.GetGitHeadRefName())
 | 
			
		||||
			if err != nil && !git.IsErrNotExist(err) {
 | 
			
		||||
				return nil, fmt.Errorf("GetBranchCommitID: %v", err)
 | 
			
		||||
			}
 | 
			
		||||
 
 | 
			
		||||
@@ -217,7 +217,7 @@ func TestAgitReviewStaleness(t *testing.T) {
 | 
			
		||||
		assert.NoError(t, err)
 | 
			
		||||
		defer baseGitRepo.Close()
 | 
			
		||||
 | 
			
		||||
		updatedCommitID, err := baseGitRepo.GetRefCommitID(pr.GetGitRefName())
 | 
			
		||||
		updatedCommitID, err := baseGitRepo.GetRefCommitID(pr.GetGitHeadRefName())
 | 
			
		||||
		assert.NoError(t, err)
 | 
			
		||||
		t.Logf("Updated commit ID: %s", updatedCommitID)
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -768,7 +768,7 @@ func TestPullAutoMergeAfterCommitStatusSucceed(t *testing.T) {
 | 
			
		||||
		// update commit status to success, then it should be merged automatically
 | 
			
		||||
		baseGitRepo, err := gitrepo.OpenRepository(db.DefaultContext, baseRepo)
 | 
			
		||||
		assert.NoError(t, err)
 | 
			
		||||
		sha, err := baseGitRepo.GetRefCommitID(pr.GetGitRefName())
 | 
			
		||||
		sha, err := baseGitRepo.GetRefCommitID(pr.GetGitHeadRefName())
 | 
			
		||||
		assert.NoError(t, err)
 | 
			
		||||
		masterCommitID, err := baseGitRepo.GetBranchCommitID("master")
 | 
			
		||||
		assert.NoError(t, err)
 | 
			
		||||
@@ -850,7 +850,7 @@ func TestPullAutoMergeAfterCommitStatusSucceedAndApproval(t *testing.T) {
 | 
			
		||||
		// update commit status to success, then it should be merged automatically
 | 
			
		||||
		baseGitRepo, err := gitrepo.OpenRepository(db.DefaultContext, baseRepo)
 | 
			
		||||
		assert.NoError(t, err)
 | 
			
		||||
		sha, err := baseGitRepo.GetRefCommitID(pr.GetGitRefName())
 | 
			
		||||
		sha, err := baseGitRepo.GetRefCommitID(pr.GetGitHeadRefName())
 | 
			
		||||
		assert.NoError(t, err)
 | 
			
		||||
		masterCommitID, err := baseGitRepo.GetBranchCommitID("master")
 | 
			
		||||
		assert.NoError(t, err)
 | 
			
		||||
@@ -979,7 +979,7 @@ func TestPullAutoMergeAfterCommitStatusSucceedAndApprovalForAgitFlow(t *testing.
 | 
			
		||||
		// update commit status to success, then it should be merged automatically
 | 
			
		||||
		baseGitRepo, err := gitrepo.OpenRepository(db.DefaultContext, baseRepo)
 | 
			
		||||
		assert.NoError(t, err)
 | 
			
		||||
		sha, err := baseGitRepo.GetRefCommitID(pr.GetGitRefName())
 | 
			
		||||
		sha, err := baseGitRepo.GetRefCommitID(pr.GetGitHeadRefName())
 | 
			
		||||
		assert.NoError(t, err)
 | 
			
		||||
		masterCommitID, err := baseGitRepo.GetBranchCommitID("master")
 | 
			
		||||
		assert.NoError(t, err)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user