diff options
Diffstat (limited to 'modules')
-rw-r--r-- | modules/convert/convert.go | 24 | ||||
-rw-r--r-- | modules/structs/repo_branch.go | 10 |
2 files changed, 29 insertions, 5 deletions
diff --git a/modules/convert/convert.go b/modules/convert/convert.go index f52ed63476..f65e4b4fe2 100644 --- a/modules/convert/convert.go +++ b/modules/convert/convert.go @@ -30,10 +30,28 @@ func ToEmail(email *models.EmailAddress) *api.Email { } // ToBranch convert a git.Commit and git.Branch to an api.Branch -func ToBranch(repo *models.Repository, b *git.Branch, c *git.Commit) *api.Branch { +func ToBranch(repo *models.Repository, b *git.Branch, c *git.Commit, bp *models.ProtectedBranch, user *models.User) *api.Branch { + if bp == nil { + return &api.Branch{ + Name: b.Name, + Commit: ToCommit(repo, c), + Protected: false, + RequiredApprovals: 0, + EnableStatusCheck: false, + StatusCheckContexts: []string{}, + UserCanPush: true, + UserCanMerge: true, + } + } return &api.Branch{ - Name: b.Name, - Commit: ToCommit(repo, c), + 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.CanUserMerge(user.ID), } } diff --git a/modules/structs/repo_branch.go b/modules/structs/repo_branch.go index a6ae6c1663..42bb763893 100644 --- a/modules/structs/repo_branch.go +++ b/modules/structs/repo_branch.go @@ -6,6 +6,12 @@ package structs // Branch represents a repository branch type Branch struct { - Name string `json:"name"` - Commit *PayloadCommit `json:"commit"` + Name string `json:"name"` + Commit *PayloadCommit `json:"commit"` + Protected bool `json:"protected"` + RequiredApprovals int64 `json:"required_approvals"` + EnableStatusCheck bool `json:"enable_status_check"` + StatusCheckContexts []string `json:"status_check_contexts"` + UserCanPush bool `json:"user_can_push"` + UserCanMerge bool `json:"user_can_merge"` } |