using System; using System.Collections.Generic; using System.Reactive.Threading.Tasks; using System.Threading.Tasks; namespace Octokit.Reactive { public class ObservableRepositoryForksClient : IObservableRepositoryForksClient { readonly IRepositoryForksClient _client; /// /// Initializes a new GitHub Repos Fork API client. /// /// public ObservableRepositoryForksClient(IGitHubClient client) { Ensure.ArgumentNotNull(client, "client"); _client = client.Repository.Forks; } /// /// Gets the list of forks defined for a repository /// /// See API documentation for more information. /// public IObservable> Get(string owner, string repositoryName) { Ensure.ArgumentNotNullOrEmptyString(owner, "owner"); Ensure.ArgumentNotNullOrEmptyString(repositoryName, "repositoryName"); return _client.Get(owner, repositoryName).ToObservable(); } /// /// Creates a fork for a repository. Specify organization in the fork parameter to create for an organization. /// /// See API documentation for more information. /// public IObservable Create(string owner, string repositoryName, NewRepositoryFork fork) { Ensure.ArgumentNotNullOrEmptyString(owner, "owner"); Ensure.ArgumentNotNullOrEmptyString(repositoryName, "repositoryName"); Ensure.ArgumentNotNull(fork, "fork"); return _client.Create(owner, repositoryName, fork).ToObservable(); } } }