From 83fe7d414e2bcef21e61f0bbfc719125973a61c2 Mon Sep 17 00:00:00 2001
From: Lunny Xiao <xiaolunwen@gmail.com>
Date: Thu, 19 Mar 2020 23:39:08 +0800
Subject: [PATCH] Fix bug on branch API (#10767)

---
 modules/convert/convert.go | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/modules/convert/convert.go b/modules/convert/convert.go
index cab2f84bb9..240db77d2c 100644
--- a/modules/convert/convert.go
+++ b/modules/convert/convert.go
@@ -49,17 +49,21 @@ func ToBranch(repo *models.Repository, b *git.Branch, c *git.Commit, bp *models.
 		branchProtectionName = bp.BranchName
 	}
 
-	return &api.Branch{
+	branch := &api.Branch{
 		Name:                          b.Name,
 		Commit:                        ToCommit(repo, c),
 		Protected:                     true,
 		RequiredApprovals:             bp.RequiredApprovals,
 		EnableStatusCheck:             bp.EnableStatusCheck,
 		StatusCheckContexts:           bp.StatusCheckContexts,
-		UserCanPush:                   bp.CanUserPush(user.ID),
-		UserCanMerge:                  bp.IsUserMergeWhitelisted(user.ID),
 		EffectiveBranchProtectionName: branchProtectionName,
 	}
+
+	if user != nil {
+		branch.UserCanPush = bp.CanUserPush(user.ID)
+		branch.UserCanMerge = bp.IsUserMergeWhitelisted(user.ID)
+	}
+	return branch
 }
 
 // ToBranchProtection convert a ProtectedBranch to api.BranchProtection