1// Copyright 2014 The go-github AUTHORS. All rights reserved. 2// 3// Use of this source code is governed by a BSD-style 4// license that can be found in the LICENSE file. 5 6package github 7 8import ( 9 "context" 10 "fmt" 11) 12 13// RepositoryMergeRequest represents a request to merge a branch in a 14// repository. 15type RepositoryMergeRequest struct { 16 Base *string `json:"base,omitempty"` 17 Head *string `json:"head,omitempty"` 18 CommitMessage *string `json:"commit_message,omitempty"` 19} 20 21// Merge a branch in the specified repository. 22// 23// GitHub API docs: https://developer.github.com/v3/repos/merging/#perform-a-merge 24func (s *RepositoriesService) Merge(ctx context.Context, owner, repo string, request *RepositoryMergeRequest) (*RepositoryCommit, *Response, error) { 25 u := fmt.Sprintf("repos/%v/%v/merges", owner, repo) 26 req, err := s.client.NewRequest("POST", u, request) 27 if err != nil { 28 return nil, nil, err 29 } 30 31 commit := new(RepositoryCommit) 32 resp, err := s.client.Do(ctx, req, commit) 33 if err != nil { 34 return nil, resp, err 35 } 36 37 return commit, resp, nil 38} 39