diff --git a/Octokit.Reactive/Clients/IObservableRepositoriesClient.cs b/Octokit.Reactive/Clients/IObservableRepositoriesClient.cs index cc172b19..fac8cec4 100644 --- a/Octokit.Reactive/Clients/IObservableRepositoriesClient.cs +++ b/Octokit.Reactive/Clients/IObservableRepositoriesClient.cs @@ -126,9 +126,16 @@ namespace Octokit.Reactive IObservableRepositoryCommentsClient RepositoryComments { get; } /// - /// Gets a client for GitHub's Repository Hooks + /// A client for GitHub's Repository Hooks API. /// + /// See Hooks API documentation for more information. IObservableRepositoryHooksClient Hooks { get; } + + /// + /// A client for GitHub's Repository Forks API. + /// + /// See Forks API documentation for more information. + IObservableRepositoryForksClient Forks { get; } /// /// Gets all the branches for the specified repository. diff --git a/Octokit.Reactive/Clients/IObservableRepositoryForksClient.cs b/Octokit.Reactive/Clients/IObservableRepositoryForksClient.cs index ed73fc72..db9da5a7 100644 --- a/Octokit.Reactive/Clients/IObservableRepositoryForksClient.cs +++ b/Octokit.Reactive/Clients/IObservableRepositoryForksClient.cs @@ -14,7 +14,7 @@ namespace Octokit.Reactive /// See API documentation for more information. /// [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1716:IdentifiersShouldNotMatchKeywords", MessageId = "Get", Justification = "This is ok; we're matching HTTP verbs not keyworks")] - IObservable> Get(string owner, string repositoryName); + IObservable Get(string owner, string repositoryName); /// /// Creates a fork for a repository. Specify organization in the fork parameter to create for an organization. diff --git a/Octokit.Reactive/Clients/IObservableRepositoryHooksClient.cs b/Octokit.Reactive/Clients/IObservableRepositoryHooksClient.cs index fb6b939c..8147f5af 100644 --- a/Octokit.Reactive/Clients/IObservableRepositoryHooksClient.cs +++ b/Octokit.Reactive/Clients/IObservableRepositoryHooksClient.cs @@ -12,7 +12,7 @@ namespace Octokit.Reactive /// See API documentation for more information. /// [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1716:IdentifiersShouldNotMatchKeywords", MessageId = "Get", Justification = "This is ok; we're matching HTTP verbs not keyworks")] - IObservable> Get(string owner, string repositoryName); + IObservable Get(string owner, string repositoryName); /// /// Gets a single hook defined for a repository by id diff --git a/Octokit.Reactive/Clients/ObservableRepositoriesClient.cs b/Octokit.Reactive/Clients/ObservableRepositoriesClient.cs index 42e6c10f..3513d041 100644 --- a/Octokit.Reactive/Clients/ObservableRepositoriesClient.cs +++ b/Octokit.Reactive/Clients/ObservableRepositoriesClient.cs @@ -21,6 +21,7 @@ namespace Octokit.Reactive _connection = client.Connection; CommitStatus = new ObservableCommitStatusClient(client); Hooks = new ObservableRepositoryHooksClient(client); + Forks = new ObservableRepositoryForksClient(client); RepoCollaborators = new ObservableRepoCollaboratorsClient(client); Deployment = new ObservableDeploymentsClient(client); Statistics = new ObservableStatisticsClient(client); @@ -192,12 +193,16 @@ namespace Octokit.Reactive public IObservableRepositoryCommentsClient RepositoryComments { get; private set; } /// - /// Gets a client for GitHub's Repository Hooks + /// A client for GitHub's Repository Hooks API. /// - public IObservableRepositoryHooksClient Hooks - { - get; private set; - } + /// See Hooks API documentation for more information. + public IObservableRepositoryHooksClient Hooks { get; private set; } + + /// + /// A client for GitHub's Repository Forks API. + /// + /// See Forks API documentation for more information. + public IObservableRepositoryForksClient Forks { get; private set; } /// /// Gets all the branches for the specified repository. diff --git a/Octokit.Reactive/Clients/ObservableRepositoryForksClient.cs b/Octokit.Reactive/Clients/ObservableRepositoryForksClient.cs index 1e07afc1..36acb3b6 100644 --- a/Octokit.Reactive/Clients/ObservableRepositoryForksClient.cs +++ b/Octokit.Reactive/Clients/ObservableRepositoryForksClient.cs @@ -2,12 +2,14 @@ using System.Collections.Generic; using System.Reactive.Threading.Tasks; using System.Threading.Tasks; +using Octokit.Reactive.Internal; namespace Octokit.Reactive { public class ObservableRepositoryForksClient : IObservableRepositoryForksClient { readonly IRepositoryForksClient _client; + readonly IConnection _connection; /// /// Initializes a new GitHub Repos Fork API client. @@ -17,6 +19,7 @@ namespace Octokit.Reactive { Ensure.ArgumentNotNull(client, "client"); _client = client.Repository.Forks; + _connection = client.Connection; } /// @@ -24,12 +27,12 @@ namespace Octokit.Reactive /// /// See API documentation for more information. /// - public IObservable> Get(string owner, string repositoryName) + public IObservable Get(string owner, string repositoryName) { Ensure.ArgumentNotNullOrEmptyString(owner, "owner"); Ensure.ArgumentNotNullOrEmptyString(repositoryName, "repositoryName"); - return _client.Get(owner, repositoryName).ToObservable(); + return _connection.GetAndFlattenAllPages(ApiUrls.RepositoryForks(owner, repositoryName)); } /// diff --git a/Octokit.Reactive/Clients/ObservableRepositoryHooksClient.cs b/Octokit.Reactive/Clients/ObservableRepositoryHooksClient.cs index 6025f053..9694c353 100644 --- a/Octokit.Reactive/Clients/ObservableRepositoryHooksClient.cs +++ b/Octokit.Reactive/Clients/ObservableRepositoryHooksClient.cs @@ -2,18 +2,21 @@ using System.Collections.Generic; using System.Reactive; using System.Reactive.Threading.Tasks; +using Octokit.Reactive.Internal; namespace Octokit.Reactive { public class ObservableRepositoryHooksClient : IObservableRepositoryHooksClient { readonly IRepositoryHooksClient _client; + readonly IConnection _connection; public ObservableRepositoryHooksClient(IGitHubClient client) { Ensure.ArgumentNotNull(client, "client"); _client = client.Repository.Hooks; + _connection = client.Connection; } /// @@ -21,12 +24,12 @@ namespace Octokit.Reactive /// /// See API documentation for more information. /// - public IObservable> Get(string owner, string repositoryName) + public IObservable Get(string owner, string repositoryName) { Ensure.ArgumentNotNullOrEmptyString(owner, "owner"); Ensure.ArgumentNotNullOrEmptyString(repositoryName, "repositoryName"); - return _client.Get(owner, repositoryName).ToObservable(); + return _connection.GetAndFlattenAllPages(ApiUrls.RepositoryHooks(owner, repositoryName)); } /// diff --git a/Octokit/Clients/IRepositoriesClient.cs b/Octokit/Clients/IRepositoriesClient.cs index 16dcc567..d1406f5c 100644 --- a/Octokit/Clients/IRepositoriesClient.cs +++ b/Octokit/Clients/IRepositoriesClient.cs @@ -155,13 +155,13 @@ namespace Octokit /// /// A client for GitHub's Repository Hooks API. /// - /// See API documentation for more information. + /// See Hooks API documentation for more information. IRepositoryHooksClient Hooks { get; } - /// - /// Gets a client for GitHub's Repository Hooks + /// A client for GitHub's Repository Forks API. /// + /// See Forks API documentation for more information. IRepositoryForksClient Forks { get; } /// diff --git a/Octokit/Clients/RepositoriesClient.cs b/Octokit/Clients/RepositoriesClient.cs index 2bf947f2..f41db0c2 100644 --- a/Octokit/Clients/RepositoriesClient.cs +++ b/Octokit/Clients/RepositoriesClient.cs @@ -258,15 +258,16 @@ namespace Octokit /// /// A client for GitHub's Repository Hooks API. /// - /// See API documentation for more information. + /// See Hooks API documentation for more information. public IRepositoryHooksClient Hooks { get; private set; } /// - /// Gets a client for GitHub's Repository Hooks + /// A client for GitHub's Repository Forks API. /// + /// See Forks API documentation for more information. public IRepositoryForksClient Forks { get;