code: func (s *PullRequestsService) Merge(ctx context.Context, owner string, repo string, number int, commitMessage string, options *PullRequestOptions) (*PullRequestMergeResult, *Response, error) {
  	u := fmt.Sprintf("repos/%v/%v/pulls/%d/merge", owner, repo, number)
  
  	pullRequestBody := &pullRequestMergeRequest{CommitMessage: commitMessage}
  	if options != nil {
  		pullRequestBody.CommitTitle = options.CommitTitle
  		pullRequestBody.MergeMethod = options.MergeMethod
  		pullRequestBody.SHA = options.SHA
  	}
  	req, err := s.client.NewRequest("PUT", u, pullRequestBody)
  	if err != nil {
  		return nil, nil, err
  	}
  
  	mergeResult := new(PullRequestMergeResult)
  	resp, err := s.client.Do(ctx, req, mergeResult)
  	if err != nil {
  		return nil, resp, err
  	}
  
  	return mergeResult, resp, nil
  }
docs: // Merge a pull request (Merge Button™).
  // commitMessage is the title for the automatic commit message.
  //
  // GitHub API docs: https://developer.github.com/v3/pulls/#merge-a-pull-request-merge-buttontrade