@@ -83,11 +83,6 @@ func checkPullRequestMergeableAndUpdateStatusMergeTree(ctx context.Context, pr *
8383			return  fmt .Errorf ("OpenRepository: %w" , err )
8484		}
8585		defer  baseGitRepo .Close ()
86- 		// 2.1. fetch head commit id into the current repository 
87- 		// it will be checked in 2 weeks by default from git if the pull request created failure. 
88- 		if  err  :=  gitrepo .FetchRemoteCommit (ctx , pr .BaseRepo , pr .HeadRepo , pr .HeadCommitID ); err  !=  nil  {
89- 			return  fmt .Errorf ("FetchRemoteCommit: %w" , err )
90- 		}
9186	}
9287
9388	// 3. Get head commit id 
@@ -107,7 +102,15 @@ func checkPullRequestMergeableAndUpdateStatusMergeTree(ctx context.Context, pr *
107102		}
108103	}
109104
110- 	// 4. update merge base 
105+ 	// 4. fetch head commit id into the current repository 
106+ 	// it will be checked in 2 weeks by default from git if the pull request created failure. 
107+ 	if  ! pr .IsSameRepo () {
108+ 		if  err  :=  gitrepo .FetchRemoteCommit (ctx , pr .BaseRepo , pr .HeadRepo , pr .HeadCommitID ); err  !=  nil  {
109+ 			return  fmt .Errorf ("FetchRemoteCommit: %w" , err )
110+ 		}
111+ 	}
112+ 
113+ 	// 5. update merge base 
111114	baseCommitID , err  :=  baseGitRepo .GetRefCommitID (git .BranchPrefix  +  pr .BaseBranch )
112115	if  err  !=  nil  {
113116		return  fmt .Errorf ("GetBranchCommitID: can't find commit ID for base: %w" , err )
@@ -120,13 +123,13 @@ func checkPullRequestMergeableAndUpdateStatusMergeTree(ctx context.Context, pr *
120123		return  nil 
121124	}
122125
123- 	// 5 . if base == head, then it's an ancestor 
126+ 	// 6 . if base == head, then it's an ancestor 
124127	if  pr .HeadCommitID  ==  pr .MergeBase  {
125128		pr .Status  =  issues_model .PullRequestStatusAncestor 
126129		return  nil 
127130	}
128131
129- 	// 6 . Check for conflicts 
132+ 	// 7 . Check for conflicts 
130133	conflicted , err  :=  checkConflictsMergeTree (ctx , pr , baseCommitID )
131134	if  err  !=  nil  {
132135		log .Error ("checkConflictsMergeTree: %v" , err )
0 commit comments