diff --git a/Octokit.Reactive/Clients/IObservableRepositoryForksClient.cs b/Octokit.Reactive/Clients/IObservableRepositoryForksClient.cs
index bac871d5..212d582b 100644
--- a/Octokit.Reactive/Clients/IObservableRepositoryForksClient.cs
+++ b/Octokit.Reactive/Clients/IObservableRepositoryForksClient.cs
@@ -4,12 +4,33 @@ namespace Octokit.Reactive
{
public interface IObservableRepositoryForksClient
{
+ ///
+ /// Gets the list of forks defined for a repository
+ ///
+ /// See API documentation for more information.
+ ///
+ IObservable GetAll(string owner, string repositoryName);
+
+ ///
+ /// Gets the list of forks defined for a repository
+ ///
+ /// See API documentation for more information.
+ ///
+ IObservable GetAll(string owner, string repositoryName, ApiOptions options);
+
///
/// Gets the list of forks defined for a repository
///
/// See API documentation for more information.
///
IObservable GetAll(string owner, string repositoryName, RepositoryForksListRequest request);
+
+ ///
+ /// Gets the list of forks defined for a repository
+ ///
+ /// See API documentation for more information.
+ ///
+ IObservable GetAll(string owner, string repositoryName, RepositoryForksListRequest request, ApiOptions options);
///
/// Creates a fork for a repository. Specify organization in the fork parameter to create for an organization.
diff --git a/Octokit.Reactive/Clients/ObservableRepositoryForksClient.cs b/Octokit.Reactive/Clients/ObservableRepositoryForksClient.cs
index 3238cd6c..d011bc19 100644
--- a/Octokit.Reactive/Clients/ObservableRepositoryForksClient.cs
+++ b/Octokit.Reactive/Clients/ObservableRepositoryForksClient.cs
@@ -16,10 +16,38 @@ namespace Octokit.Reactive
public ObservableRepositoryForksClient(IGitHubClient client)
{
Ensure.ArgumentNotNull(client, "client");
+
_client = client.Repository.Forks;
_connection = client.Connection;
}
+ ///
+ /// Gets the list of forks defined for a repository
+ ///
+ /// See API documentation for more information.
+ ///
+ public IObservable GetAll(string owner, string repositoryName)
+ {
+ Ensure.ArgumentNotNullOrEmptyString(owner, "owner");
+ Ensure.ArgumentNotNullOrEmptyString(repositoryName, "repositoryName");
+
+ return GetAll(owner, repositoryName, ApiOptions.None);
+ }
+
+ ///
+ /// Gets the list of forks defined for a repository
+ ///
+ /// See API documentation for more information.
+ ///
+ public IObservable GetAll(string owner, string repositoryName, ApiOptions options)
+ {
+ Ensure.ArgumentNotNullOrEmptyString(owner, "owner");
+ Ensure.ArgumentNotNullOrEmptyString(repositoryName, "repositoryName");
+ Ensure.ArgumentNotNull(options, "options");
+
+ return _connection.GetAndFlattenAllPages(ApiUrls.RepositoryForks(owner, repositoryName), options);
+ }
+
///
/// Gets the list of forks defined for a repository
///
@@ -29,10 +57,24 @@ namespace Octokit.Reactive
{
Ensure.ArgumentNotNullOrEmptyString(owner, "owner");
Ensure.ArgumentNotNullOrEmptyString(repositoryName, "repositoryName");
+ Ensure.ArgumentNotNull(request, "request");
- return request == null
- ? _connection.GetAndFlattenAllPages(ApiUrls.RepositoryForks(owner, repositoryName))
- : _connection.GetAndFlattenAllPages(ApiUrls.RepositoryForks(owner, repositoryName), request.ToParametersDictionary());
+ return GetAll(owner, repositoryName, request, ApiOptions.None);
+ }
+
+ ///
+ /// Gets the list of forks defined for a repository
+ ///
+ /// See API documentation for more information.
+ ///
+ public IObservable GetAll(string owner, string repositoryName, RepositoryForksListRequest request, ApiOptions options)
+ {
+ Ensure.ArgumentNotNullOrEmptyString(owner, "owner");
+ Ensure.ArgumentNotNullOrEmptyString(repositoryName, "repositoryName");
+ Ensure.ArgumentNotNull(request, "request");
+ Ensure.ArgumentNotNull(options, "options");
+
+ return _connection.GetAndFlattenAllPages(ApiUrls.RepositoryForks(owner, repositoryName), request.ToParametersDictionary(), options);
}
///
diff --git a/Octokit.Tests.Integration/Clients/RepositoryForksClientTests.cs b/Octokit.Tests.Integration/Clients/RepositoryForksClientTests.cs
index 3f7c5af7..a0d73878 100644
--- a/Octokit.Tests.Integration/Clients/RepositoryForksClientTests.cs
+++ b/Octokit.Tests.Integration/Clients/RepositoryForksClientTests.cs
@@ -13,7 +13,7 @@ namespace Octokit.Tests.Integration.Clients
{
var github = Helper.GetAuthenticatedClient();
- var forks = await github.Repository.Forks.GetAll("octokit", "octokit.net", null);
+ var forks = await github.Repository.Forks.GetAll("octokit", "octokit.net");
var masterFork = forks.FirstOrDefault(fork => fork.FullName == "TeamBinary/octokit.net");
Assert.NotNull(masterFork);
diff --git a/Octokit.Tests/Clients/RepositoryForksClientTests.cs b/Octokit.Tests/Clients/RepositoryForksClientTests.cs
index acc0f47a..28474a7b 100644
--- a/Octokit.Tests/Clients/RepositoryForksClientTests.cs
+++ b/Octokit.Tests/Clients/RepositoryForksClientTests.cs
@@ -26,7 +26,7 @@ namespace Octokit.Tests.Clients
var connection = Substitute.For();
var client = new RepositoriesClient(connection);
- client.Forks.GetAll("fake", "repo", null);
+ client.Forks.GetAll("fake", "repo");
connection.Received().GetAll(Arg.Is(u => u.ToString() == "repos/fake/repo/forks"));
}
@@ -49,8 +49,8 @@ namespace Octokit.Tests.Clients
{
var client = new RepositoriesClient(Substitute.For());
- await Assert.ThrowsAsync(() => client.Forks.GetAll(null, "name", null));
- await Assert.ThrowsAsync(() => client.Forks.GetAll("owner", null, null));
+ await Assert.ThrowsAsync(() => client.Forks.GetAll(null, "name"));
+ await Assert.ThrowsAsync(() => client.Forks.GetAll("owner", null));
}
}
diff --git a/Octokit/Clients/IRepositoryForksClient.cs b/Octokit/Clients/IRepositoryForksClient.cs
index 8d026244..76ac2864 100644
--- a/Octokit/Clients/IRepositoryForksClient.cs
+++ b/Octokit/Clients/IRepositoryForksClient.cs
@@ -5,12 +5,33 @@ namespace Octokit
{
public interface IRepositoryForksClient
{
+ ///
+ /// Gets the list of forks defined for a repository
+ ///
+ /// See API documentation for more information.
+ ///
+ Task> GetAll(string owner, string repositoryName);
+
+ ///
+ /// Gets the list of forks defined for a repository
+ ///
+ /// See API documentation for more information.
+ ///
+ Task> GetAll(string owner, string repositoryName, ApiOptions options);
+
///
/// Gets the list of forks defined for a repository
///
/// See API documentation for more information.
///
Task> GetAll(string owner, string repositoryName, RepositoryForksListRequest request);
+
+ ///
+ /// Gets the list of forks defined for a repository
+ ///
+ /// See API documentation for more information.
+ ///
+ Task> GetAll(string owner, string repositoryName, RepositoryForksListRequest request, ApiOptions options);
///
/// Creates a fork for a repository. Specify organization in the fork parameter to create for an organization.
diff --git a/Octokit/Clients/RepositoryForksClient.cs b/Octokit/Clients/RepositoryForksClient.cs
index c45a634b..91920403 100644
--- a/Octokit/Clients/RepositoryForksClient.cs
+++ b/Octokit/Clients/RepositoryForksClient.cs
@@ -19,14 +19,55 @@ namespace Octokit
///
/// See API documentation for more information.
///
- public Task> GetAll(string owner, string repositoryName, RepositoryForksListRequest request)
+ public Task> GetAll(string owner, string repositoryName)
{
Ensure.ArgumentNotNullOrEmptyString(owner, "owner");
Ensure.ArgumentNotNullOrEmptyString(repositoryName, "repositoryName");
- return request == null
- ? ApiConnection.GetAll(ApiUrls.RepositoryForks(owner, repositoryName))
- : ApiConnection.GetAll(ApiUrls.RepositoryForks(owner, repositoryName), request.ToParametersDictionary());
+ return GetAll(owner, repositoryName, ApiOptions.None);
+ }
+
+ ///
+ /// Gets the list of forks defined for a repository
+ ///
+ /// See API documentation for more information.
+ ///
+ public Task> GetAll(string owner, string repositoryName, ApiOptions options)
+ {
+ Ensure.ArgumentNotNullOrEmptyString(owner, "owner");
+ Ensure.ArgumentNotNullOrEmptyString(repositoryName, "repositoryName");
+ Ensure.ArgumentNotNull(options, "options");
+
+ return ApiConnection.GetAll(ApiUrls.RepositoryForks(owner, repositoryName), options);
+ }
+
+ ///
+ /// Gets the list of forks defined for a repository
+ ///
+ /// See API documentation for more information.
+ ///
+ public Task> GetAll(string owner, string repositoryName, RepositoryForksListRequest request)
+ {
+ Ensure.ArgumentNotNullOrEmptyString(owner, "owner");
+ Ensure.ArgumentNotNullOrEmptyString(repositoryName, "repositoryName");
+ Ensure.ArgumentNotNull(request, "request");
+
+ return GetAll(owner, repositoryName, request, ApiOptions.None);
+ }
+
+ ///
+ /// Gets the list of forks defined for a repository
+ ///
+ /// See API documentation for more information.
+ ///
+ public Task> GetAll(string owner, string repositoryName, RepositoryForksListRequest request, ApiOptions options)
+ {
+ Ensure.ArgumentNotNullOrEmptyString(owner, "owner");
+ Ensure.ArgumentNotNullOrEmptyString(repositoryName, "repositoryName");
+ Ensure.ArgumentNotNull(request, "request");
+ Ensure.ArgumentNotNull(options, "options");
+
+ return ApiConnection.GetAll(ApiUrls.RepositoryForks(owner, repositoryName), request.ToParametersDictionary(), options);
}
///