using System; using System.Reactive.Threading.Tasks; namespace Octokit.Reactive { public class ObservableMergingClient : IObservableMergingClient { readonly IMergingClient _client; public ObservableMergingClient(IGitHubClient client) { Ensure.ArgumentNotNull(client, "client"); _client = client.Repository.Merging; } /// /// 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 /// public IObservable Create(string owner, string name, NewMerge merge) { Ensure.ArgumentNotNullOrEmptyString(owner, "owner"); Ensure.ArgumentNotNullOrEmptyString(name, "name"); Ensure.ArgumentNotNull(merge, "merge"); return _client.Create(owner, name, merge).ToObservable(); } /// /// 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 /// public IObservable Create(int repositoryId, NewMerge merge) { Ensure.ArgumentNotNull(merge, "merge"); return _client.Create(repositoryId, merge).ToObservable(); } } }