From 01665bce78276b838b2344a354e511eca2aabacd Mon Sep 17 00:00:00 2001 From: Henrik Andersson Date: Mon, 23 Mar 2015 23:22:47 +1000 Subject: [PATCH] Add 'since` parameter for public repositories --- .../Clients/IObservableRepositoriesClient.cs | 14 +++++++++- .../Clients/ObservableRepositoriesClient.cs | 15 ++++++++++ Octokit/Clients/IRepositoriesClient.cs | 14 ++++++++++ Octokit/Clients/RepositoriesClient.cs | 19 +++++++++++++ .../Models/Request/PublicRepositoryRequest.cs | 28 +++++++++++++++++++ Octokit/Octokit-Mono.csproj | 1 + Octokit/Octokit-MonoAndroid.csproj | 1 + Octokit/Octokit-Monotouch.csproj | 1 + Octokit/Octokit-Portable.csproj | 1 + Octokit/Octokit-netcore45.csproj | 1 + Octokit/Octokit.csproj | 1 + 11 files changed, 95 insertions(+), 1 deletion(-) create mode 100644 Octokit/Models/Request/PublicRepositoryRequest.cs diff --git a/Octokit.Reactive/Clients/IObservableRepositoriesClient.cs b/Octokit.Reactive/Clients/IObservableRepositoriesClient.cs index 222cea82..25337bab 100644 --- a/Octokit.Reactive/Clients/IObservableRepositoriesClient.cs +++ b/Octokit.Reactive/Clients/IObservableRepositoriesClient.cs @@ -49,7 +49,19 @@ namespace Octokit.Reactive [SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Justification = "Makes a network request")] IObservable GetAllPublic(); - + + /// + /// Retrieves every public since the last repository seen. + /// + /// + /// The default page size on GitHub.com is 30. + /// + /// Search parameters of the last repository seen + /// A of . + [SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", + Justification = "Makes a network request")] + IObservable GetAllPublic(PublicRepositoryRequest request); + /// /// Retrieves every that belongs to the current user. /// diff --git a/Octokit.Reactive/Clients/ObservableRepositoriesClient.cs b/Octokit.Reactive/Clients/ObservableRepositoriesClient.cs index 9c17dbf8..1a173d9c 100644 --- a/Octokit.Reactive/Clients/ObservableRepositoriesClient.cs +++ b/Octokit.Reactive/Clients/ObservableRepositoriesClient.cs @@ -102,6 +102,21 @@ namespace Octokit.Reactive return _connection.GetAndFlattenAllPages(ApiUrls.AllPublicRepositories()); } + /// + /// Retrieves every public since the last repository seen. + /// + /// + /// The default page size on GitHub.com is 30. + /// + /// Search parameters of the last repository seen + /// A of . + public IObservable GetAllPublic(PublicRepositoryRequest request) + { + Ensure.ArgumentNotNull(request, "request"); + + return _connection.GetAndFlattenAllPages(ApiUrls.AllPublicRepositories(), request.ToParametersDictionary()); + } + /// /// Retrieves every that belongs to the current user. /// diff --git a/Octokit/Clients/IRepositoriesClient.cs b/Octokit/Clients/IRepositoriesClient.cs index 7172f0f4..18533597 100644 --- a/Octokit/Clients/IRepositoriesClient.cs +++ b/Octokit/Clients/IRepositoriesClient.cs @@ -109,6 +109,20 @@ namespace Octokit Justification = "Makes a network request")] Task> GetAllPublic(); + + /// + /// Gets all public repositories since the integer ID of the last Repository that you’ve seen. + /// + /// + /// See the API documentation for more information. + /// The default page size on GitHub.com is 30. + /// + /// Search parameters of the last repository seen + /// Thrown if the client is not authenticated. + /// Thrown when a general API error occurs. + /// A of . + Task> GetAllPublic(PublicRepositoryRequest request); + /// /// Gets all repositories owned by the current user. /// diff --git a/Octokit/Clients/RepositoriesClient.cs b/Octokit/Clients/RepositoriesClient.cs index 25deeae7..6bb9c6a4 100644 --- a/Octokit/Clients/RepositoriesClient.cs +++ b/Octokit/Clients/RepositoriesClient.cs @@ -1,4 +1,5 @@ using System; +using System.Globalization; #if NET_45 using System.Collections.Generic; #endif @@ -187,6 +188,24 @@ namespace Octokit return ApiConnection.GetAll(ApiUrls.AllPublicRepositories()); } + /// + /// Gets all public repositories since the integer ID of the last Repository that you�ve seen. + /// + /// + /// See the API documentation for more information. + /// The default page size on GitHub.com is 30. + /// + /// Search parameters of the last repository seen + /// Thrown if the client is not authenticated. + /// Thrown when a general API error occurs. + /// A of . + public Task> GetAllPublic(PublicRepositoryRequest request) + { + Ensure.ArgumentNotNull(request, "request"); + + return ApiConnection.GetAll(ApiUrls.AllPublicRepositories(), request.ToParametersDictionary()); + } + /// /// Gets all repositories owned by the current user. /// diff --git a/Octokit/Models/Request/PublicRepositoryRequest.cs b/Octokit/Models/Request/PublicRepositoryRequest.cs new file mode 100644 index 00000000..926374a9 --- /dev/null +++ b/Octokit/Models/Request/PublicRepositoryRequest.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Globalization; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Octokit +{ + [DebuggerDisplay("{DebuggerDisplay,nq}")] + public class PublicRepositoryRequest : RequestParameters + { + public PublicRepositoryRequest() + { + } + + public long Since { get; set; } + + internal string DebuggerDisplay + { + get + { + return String.Format(CultureInfo.InvariantCulture, "Since: {0} ", Since); + } + } + } +} diff --git a/Octokit/Octokit-Mono.csproj b/Octokit/Octokit-Mono.csproj index 08b522f4..d9f81fc2 100644 --- a/Octokit/Octokit-Mono.csproj +++ b/Octokit/Octokit-Mono.csproj @@ -382,6 +382,7 @@ + \ No newline at end of file diff --git a/Octokit/Octokit-MonoAndroid.csproj b/Octokit/Octokit-MonoAndroid.csproj index 03023e21..897b2a73 100644 --- a/Octokit/Octokit-MonoAndroid.csproj +++ b/Octokit/Octokit-MonoAndroid.csproj @@ -394,6 +394,7 @@ + \ No newline at end of file diff --git a/Octokit/Octokit-Monotouch.csproj b/Octokit/Octokit-Monotouch.csproj index 29d7faa3..997f94e7 100644 --- a/Octokit/Octokit-Monotouch.csproj +++ b/Octokit/Octokit-Monotouch.csproj @@ -387,6 +387,7 @@ + diff --git a/Octokit/Octokit-Portable.csproj b/Octokit/Octokit-Portable.csproj index 377001e6..55d10491 100644 --- a/Octokit/Octokit-Portable.csproj +++ b/Octokit/Octokit-Portable.csproj @@ -380,6 +380,7 @@ + diff --git a/Octokit/Octokit-netcore45.csproj b/Octokit/Octokit-netcore45.csproj index 53942c26..65291e0a 100644 --- a/Octokit/Octokit-netcore45.csproj +++ b/Octokit/Octokit-netcore45.csproj @@ -384,6 +384,7 @@ + diff --git a/Octokit/Octokit.csproj b/Octokit/Octokit.csproj index 98eb49c4..fdf8c32f 100644 --- a/Octokit/Octokit.csproj +++ b/Octokit/Octokit.csproj @@ -83,6 +83,7 @@ +