merge method

Future<PullRequestMerge> merge(
  1. RepositorySlug slug,
  2. int number, {
  3. String? message,
  4. MergeMethod mergeMethod = MergeMethod.merge,
  5. String? requestSha,
})

Merge a pull request (Merge Button).

API docs: https://developer.github.com/v3/pulls/#merge-a-pull-request-merge-button

Implementation

Future<PullRequestMerge> merge(
  RepositorySlug slug,
  int number, {
  String? message,
  MergeMethod mergeMethod = MergeMethod.merge,
  String? requestSha,
}) {
  final json = <String, dynamic>{};

  if (message != null) {
    json['commit_message'] = message;
  }
  if (requestSha != null) {
    json['sha'] = requestSha;
  }

  json['merge_method'] = mergeMethod.name;

  // Recommended Accept header when making a merge request.
  Map<String, String>? headers = <String, String>{};
  headers['Accept'] = 'application/vnd.github+json';

  return github
      .request('PUT', '/repos/${slug.fullName}/pulls/$number/merge',
          headers: headers, body: GitHubJson.encode(json))
      .then((response) {
    return PullRequestMerge.fromJson(
        jsonDecode(response.body) as Map<String, dynamic>);
  });
}