From 6d933679f373ba2f80edf708f21931f71de72a7d Mon Sep 17 00:00:00 2001 From: Brendan Forster Date: Sun, 14 Dec 2014 17:42:19 +0930 Subject: [PATCH] fleshing out some of IGitHubClient --- Octokit/GitHubClient.cs | 120 +++++++++++++++++++++++++++++++++ Octokit/IGitHubClient.cs | 141 ++++++++++++++++++++++++++++++++++----- 2 files changed, 246 insertions(+), 15 deletions(-) diff --git a/Octokit/GitHubClient.cs b/Octokit/GitHubClient.cs index 4580642a..a1e5e67f 100644 --- a/Octokit/GitHubClient.cs +++ b/Octokit/GitHubClient.cs @@ -8,6 +8,9 @@ namespace Octokit /// public class GitHubClient : IGitHubClient { + /// + /// The base address for the GitHub API + /// public static readonly Uri GitHubApiUrl = new Uri("https://api.github.com/"); internal static readonly Uri GitHubDotComUrl = new Uri("https://github.com/"); @@ -131,22 +134,139 @@ namespace Octokit /// public IConnection Connection { get; private set; } + /// + /// Access GitHub's Authorization API. + /// + /// + /// Refer to the API docmentation for more information: https://developer.github.com/v3/oauth_authorizations/ + /// public IAuthorizationsClient Authorization { get; private set; } + + /// + /// Access GitHub's Activity API. + /// + /// + /// Refer to the API docmentation for more information: https://developer.github.com/v3/activity/ + /// public IActivitiesClient Activity { get; private set; } + + /// + /// Access GitHub's Issue API. + /// + /// + /// Refer to the API docmentation for more information: https://developer.github.com/v3/issues/ + /// public IIssuesClient Issue { get; private set; } + + /// + /// Access GitHub's Miscellaneous API. + /// + /// + /// Refer to the API docmentation for more information: https://developer.github.com/v3/misc/ + /// public IMiscellaneousClient Miscellaneous { get; private set; } + + /// + /// Access GitHub's OAuth API. + /// + /// + /// Refer to the API docmentation for more information: https://developer.github.com/v3/oauth/ + /// public IOauthClient Oauth { get; private set; } + + /// + /// Access GitHub's Organizations API. + /// + /// + /// Refer to the API docmentation for more information: https://developer.github.com/v3/orgs/ + /// public IOrganizationsClient Organization { get; private set; } + + /// + /// Access GitHub's Pull Requests API. + /// + /// + /// Refer to the API docmentation for more information: https://developer.github.com/v3/pulls/ + /// public IPullRequestsClient PullRequest { get; private set; } + + /// + /// Access GitHub's Repositories API. + /// + /// + /// Refer to the API docmentation for more information: https://developer.github.com/v3/repos/ + /// public IRepositoriesClient Repository { get; private set; } + + /// + /// Access GitHub's Gists API. + /// + /// + /// Refer to the API docmentation for more information: https://developer.github.com/v3/gists/ + /// public IGistsClient Gist { get; private set; } + + // TODO: this should be under Repositories to align with the API docs + /// + /// Access GitHub's Releases API. + /// + /// + /// Refer to the API docmentation for more information: https://developer.github.com/v3/repos/releases/ + /// public IReleasesClient Release { get; private set; } + + // TODO: this should be under Users to align with the API docs + // TODO: this should be named PublicKeys to align with the API docs + /// + /// Access GitHub's Public Keys API. + /// + /// + /// Refer to the API docmentation for more information: https://developer.github.com/v3/users/keys/ + /// public ISshKeysClient SshKey { get; private set; } + + /// + /// Access GitHub's Users API. + /// + /// + /// Refer to the API docmentation for more information: https://developer.github.com/v3/users/ + /// public IUsersClient User { get; private set; } + + // TODO: this should be under Activities to align with the API docs + /// + /// Access GitHub's Notifications API. + /// + /// + /// Refer to the API docmentation for more information: https://developer.github.com/v3/activity/notifications/ + /// public INotificationsClient Notification { get; private set; } + + /// + /// Access GitHub's Git Data API. + /// + /// + /// Refer to the API docmentation for more information: https://developer.github.com/v3/git/ + /// public IGitDatabaseClient GitDatabase { get; private set; } + + /// + /// Access GitHub's Search API. + /// + /// + /// Refer to the API docmentation for more information: https://developer.github.com/v3/search/ + /// public ISearchClient Search { get; private set; } + + // TODO: this should be under Repositories to align with the API docs + /// + /// Access GitHub's Deployments API. + /// + /// + /// Refer to the API docmentation for more information: https://developer.github.com/v3/repos/deployments/ + /// public IDeploymentsClient Deployment { get; private set; } + static Uri FixUpBaseUri(Uri uri) { Ensure.ArgumentNotNull(uri, "uri"); diff --git a/Octokit/IGitHubClient.cs b/Octokit/IGitHubClient.cs index 48803046..a828c83e 100644 --- a/Octokit/IGitHubClient.cs +++ b/Octokit/IGitHubClient.cs @@ -7,22 +7,133 @@ namespace Octokit /// public interface IGitHubClient { + /// + /// Provides a client connection to make rest requests to HTTP endpoints. + /// IConnection Connection { get; } - IAuthorizationsClient Authorization { get; } - IActivitiesClient Activity { get; } - IIssuesClient Issue { get; } - IMiscellaneousClient Miscellaneous { get; } - IOauthClient Oauth { get; } - IOrganizationsClient Organization { get; } - IPullRequestsClient PullRequest { get; } - IRepositoriesClient Repository { get; } - IGistsClient Gist { get; } - IReleasesClient Release { get; } - ISshKeysClient SshKey { get; } - IUsersClient User { get; } - INotificationsClient Notification { get; } - IGitDatabaseClient GitDatabase { get; } - ISearchClient Search { get; } + /// + /// Access GitHub's Authorization API. + /// + /// + /// Refer to the API docmentation for more information: https://developer.github.com/v3/oauth_authorizations/ + /// + IAuthorizationsClient Authorization { get; } + + /// + /// Access GitHub's Activity API. + /// + /// + /// Refer to the API docmentation for more information: https://developer.github.com/v3/activity/ + /// + IActivitiesClient Activity { get; } + + /// + /// Access GitHub's Issue API. + /// + /// + /// Refer to the API docmentation for more information: https://developer.github.com/v3/issues/ + /// + IIssuesClient Issue { get; } + + /// + /// Access GitHub's Miscellaneous API. + /// + /// + /// Refer to the API docmentation for more information: https://developer.github.com/v3/misc/ + /// + IMiscellaneousClient Miscellaneous { get; } + + /// + /// Access GitHub's OAuth API. + /// + /// + /// Refer to the API docmentation for more information: https://developer.github.com/v3/oauth/ + /// + IOauthClient Oauth { get; } + + /// + /// Access GitHub's Organizations API. + /// + /// + /// Refer to the API docmentation for more information: https://developer.github.com/v3/orgs/ + /// + IOrganizationsClient Organization { get; } + + /// + /// Access GitHub's Pull Requests API. + /// + /// + /// Refer to the API docmentation for more information: https://developer.github.com/v3/pulls/ + /// + IPullRequestsClient PullRequest { get; } + + /// + /// Access GitHub's Repositories API. + /// + /// + /// Refer to the API docmentation for more information: https://developer.github.com/v3/repos/ + /// + IRepositoriesClient Repository { get; } + + /// + /// Access GitHub's Gists API. + /// + /// + /// Refer to the API docmentation for more information: https://developer.github.com/v3/gists/ + /// + IGistsClient Gist { get; } + + // TODO: this should be under Repositories to align with the API docs + /// + /// Access GitHub's Releases API. + /// + /// + /// Refer to the API docmentation for more information: https://developer.github.com/v3/repos/releases/ + /// + IReleasesClient Release { get; } + + // TODO: this should be under Users to align with the API docs + // TODO: this should be named PublicKeys to align with the API docs + /// + /// Access GitHub's Public Keys API. + /// + /// + /// Refer to the API docmentation for more information: https://developer.github.com/v3/users/keys/ + /// + ISshKeysClient SshKey { get; } + + /// + /// Access GitHub's Users API. + /// + /// + /// Refer to the API docmentation for more information: https://developer.github.com/v3/users/ + /// + IUsersClient User { get; } + + // TODO: this should be under Activities to align with the API docs + /// + /// Access GitHub's Notifications API. + /// + /// + /// Refer to the API docmentation for more information: https://developer.github.com/v3/activity/notifications/ + /// + INotificationsClient Notification { get; } + + /// + /// Access GitHub's Git Data API. + /// + /// + /// Refer to the API docmentation for more information: https://developer.github.com/v3/git/ + /// + IGitDatabaseClient GitDatabase { get; } + + /// + /// Access GitHub's Search API. + /// + /// + /// Refer to the API docmentation for more information: https://developer.github.com/v3/search/ + /// + ISearchClient Search { get; } } }