using System.Threading.Tasks; namespace Octokit { /// /// A client for GitHub's Git Merging API. /// /// /// See the Git Merging API documentation for more information. /// public class MergingClient : ApiClient, IMergingClient { /// /// Initializes a new instance of the class. /// /// The client's connection public MergingClient(IApiConnection apiConnection) : base(apiConnection) { } /// /// Create a merge for a given repository /// /// /// http://developer.github.com/v3/repos/merging/#perform-a-merge /// /// The owner of the repository /// The name of the repository /// The merge to create /// [ManualRoute("POST", "/repos/{owner}/{repo}/merges")] public Task Create(string owner, string name, NewMerge merge) { Ensure.ArgumentNotNullOrEmptyString(owner, nameof(owner)); Ensure.ArgumentNotNullOrEmptyString(name, nameof(name)); Ensure.ArgumentNotNull(merge, nameof(merge)); return ApiConnection.Post(ApiUrls.CreateMerge(owner, name), merge); } /// /// Create a merge for a given repository /// /// /// http://developer.github.com/v3/repos/merging/#perform-a-merge /// /// The Id of the repository /// The merge to create /// [ManualRoute("POST", "/repositories/{id}/merges")] public Task Create(long repositoryId, NewMerge merge) { Ensure.ArgumentNotNull(merge, nameof(merge)); return ApiConnection.Post(ApiUrls.CreateMerge(repositoryId), merge); } } }