From 13c6681a078e55c0e857eb101ab5138d211b1deb Mon Sep 17 00:00:00 2001
From: zeripath <art27@cantab.net>
Date: Tue, 18 Feb 2020 19:34:08 +0000
Subject: [PATCH] Prevent nil pointer in GetPullRequestCommitStatusState
 (#10342)

Ensure that pr.HeadRepo is loaded before using it in GetPullRequestCommitStatusState.

Fixes error on merging with successful commit merge statuses.
---
 services/pull/commit_status.go | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/services/pull/commit_status.go b/services/pull/commit_status.go
index 77aca48556..a4803bfb9f 100644
--- a/services/pull/commit_status.go
+++ b/services/pull/commit_status.go
@@ -91,6 +91,11 @@ func IsPullCommitStatusPass(pr *models.PullRequest) (bool, error) {
 
 // GetPullRequestCommitStatusState returns pull request merged commit status state
 func GetPullRequestCommitStatusState(pr *models.PullRequest) (structs.CommitStatusState, error) {
+	// Ensure HeadRepo is loaded
+	if err := pr.LoadHeadRepo(); err != nil {
+		return "", errors.Wrap(err, "LoadHeadRepo")
+	}
+
 	// check if all required status checks are successful
 	headGitRepo, err := git.OpenRepository(pr.HeadRepo.RepoPath())
 	if err != nil {