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;