diff --git a/Octokit.Reactive/Clients/Enterprise/IObservableEnterpriseClient.cs b/Octokit.Reactive/Clients/Enterprise/IObservableEnterpriseClient.cs index c0dff320..018c48e8 100644 --- a/Octokit.Reactive/Clients/Enterprise/IObservableEnterpriseClient.cs +++ b/Octokit.Reactive/Clients/Enterprise/IObservableEnterpriseClient.cs @@ -32,14 +32,6 @@ /// IObservableEnterpriseLicenseClient License { get; } - /// - /// A client for GitHub's Migrations API - /// - /// - /// See the Enterprise License API documentation for more information. - /// - IObservableEnterpriseMigrationsClient Migration { get; } - /// /// A client for GitHub's Enterprise Organization API /// diff --git a/Octokit.Reactive/Clients/Enterprise/ObservableEnterpriseClient.cs b/Octokit.Reactive/Clients/Enterprise/ObservableEnterpriseClient.cs index 9bd7701e..a463212a 100644 --- a/Octokit.Reactive/Clients/Enterprise/ObservableEnterpriseClient.cs +++ b/Octokit.Reactive/Clients/Enterprise/ObservableEnterpriseClient.cs @@ -15,7 +15,6 @@ AdminStats = new ObservableEnterpriseAdminStatsClient(client); Ldap = new ObservableEnterpriseLdapClient(client); License = new ObservableEnterpriseLicenseClient(client); - Migration = new ObservableEnterpriseMigrationsClient(client); Organization = new ObservableEnterpriseOrganizationClient(client); SearchIndexing = new ObservableEnterpriseSearchIndexingClient(client); } @@ -44,14 +43,6 @@ /// public IObservableEnterpriseLicenseClient License { get; private set; } - /// - /// A client for GitHub's Migrations API - /// - /// - /// See the Enterprise License API documentation for more information. - /// - public IObservableEnterpriseMigrationsClient Migration { get; private set; } - /// /// A client for GitHub's Enterprise Organization API /// diff --git a/Octokit.Reactive/Clients/IObservableMigrationClient.cs b/Octokit.Reactive/Clients/IObservableMigrationClient.cs new file mode 100644 index 00000000..bcc470eb --- /dev/null +++ b/Octokit.Reactive/Clients/IObservableMigrationClient.cs @@ -0,0 +1,13 @@ +namespace Octokit.Reactive +{ + public interface IObservableMigrationClient + { + /// + /// A client for GitHub's Migrations API + /// + /// + /// See the Enterprise License API documentation for more information. + /// + IObservableMigrationsClient Migration { get; } + } +} \ No newline at end of file diff --git a/Octokit.Reactive/Clients/Enterprise/IObservableEnterpriseMigrationsClient.cs b/Octokit.Reactive/Clients/IObservableMigrationsClient.cs similarity index 98% rename from Octokit.Reactive/Clients/Enterprise/IObservableEnterpriseMigrationsClient.cs rename to Octokit.Reactive/Clients/IObservableMigrationsClient.cs index 5037c312..288069ab 100644 --- a/Octokit.Reactive/Clients/Enterprise/IObservableEnterpriseMigrationsClient.cs +++ b/Octokit.Reactive/Clients/IObservableMigrationsClient.cs @@ -12,7 +12,7 @@ namespace Octokit.Reactive /// See the docs /// for more information. /// - public interface IObservableEnterpriseMigrationsClient + public interface IObservableMigrationsClient { /// /// Starts a new migration specified for the given organization. diff --git a/Octokit.Reactive/Clients/ObservableMigrationClient.cs b/Octokit.Reactive/Clients/ObservableMigrationClient.cs new file mode 100644 index 00000000..0a304739 --- /dev/null +++ b/Octokit.Reactive/Clients/ObservableMigrationClient.cs @@ -0,0 +1,20 @@ +namespace Octokit.Reactive +{ + public class ObservableMigrationClient : IObservableMigrationClient + { + public ObservableMigrationClient(IGitHubClient client) + { + Ensure.ArgumentNotNull(client, "client"); + + Migration = new ObservableMigrationsClient(client); + } + + /// + /// A client for GitHub's Enterprise Migrations API. + /// + /// + /// https://developer.github.com/v3/migration/#enterprise-migrations + /// + public IObservableMigrationsClient Migration { get; private set; } + } +} \ No newline at end of file diff --git a/Octokit.Reactive/Clients/Enterprise/ObservableEnterpriseMigrationsClient.cs b/Octokit.Reactive/Clients/ObservableMigrationsClient.cs similarity index 93% rename from Octokit.Reactive/Clients/Enterprise/ObservableEnterpriseMigrationsClient.cs rename to Octokit.Reactive/Clients/ObservableMigrationsClient.cs index 8c49932a..fd1d4db1 100644 --- a/Octokit.Reactive/Clients/Enterprise/ObservableEnterpriseMigrationsClient.cs +++ b/Octokit.Reactive/Clients/ObservableMigrationsClient.cs @@ -12,19 +12,19 @@ namespace Octokit.Reactive /// See the docs /// for more information. /// - public class ObservableEnterpriseMigrationsClient : IObservableEnterpriseMigrationsClient + public class ObservableMigrationsClient : IObservableMigrationsClient { - private readonly IEnterpriseMigrationsClient _client; + private readonly IMigrationsClient _client; /// /// Instantiates a GitHub Migrations API client. /// /// An for making requests. - public ObservableEnterpriseMigrationsClient(IGitHubClient client) + public ObservableMigrationsClient(IGitHubClient client) { Ensure.ArgumentNotNull(client, "client"); - _client = client.Enterprise.Migration; + _client = client.Migration.Migrations; } /// diff --git a/Octokit.Reactive/IObservableGitHubClient.cs b/Octokit.Reactive/IObservableGitHubClient.cs index 6f424072..00650ab5 100644 --- a/Octokit.Reactive/IObservableGitHubClient.cs +++ b/Octokit.Reactive/IObservableGitHubClient.cs @@ -26,5 +26,6 @@ namespace Octokit.Reactive IObservableGitDatabaseClient GitDatabase { get; } IObservableSearchClient Search { get; } IObservableEnterpriseClient Enterprise { get; } + IObservableMigrationClient Migration { get; } } } \ No newline at end of file diff --git a/Octokit.Reactive/ObservableGitHubClient.cs b/Octokit.Reactive/ObservableGitHubClient.cs index 16485593..0d712344 100644 --- a/Octokit.Reactive/ObservableGitHubClient.cs +++ b/Octokit.Reactive/ObservableGitHubClient.cs @@ -46,6 +46,7 @@ namespace Octokit.Reactive Gist = new ObservableGistsClient(gitHubClient); Search = new ObservableSearchClient(gitHubClient); Enterprise = new ObservableEnterpriseClient(gitHubClient); + Migration = new ObservableMigrationClient(gitHubClient); } public IConnection Connection @@ -72,6 +73,7 @@ namespace Octokit.Reactive public IObservableGitDatabaseClient Git { get; private set; } public IObservableSearchClient Search { get; private set; } public IObservableEnterpriseClient Enterprise { get; private set; } + public IObservableMigrationClient Migration { get; private set; } /// /// Gets the latest API Info - this will be null if no API calls have been made diff --git a/Octokit.Reactive/Octokit.Reactive.csproj b/Octokit.Reactive/Octokit.Reactive.csproj index 135eced2..920aefbe 100644 --- a/Octokit.Reactive/Octokit.Reactive.csproj +++ b/Octokit.Reactive/Octokit.Reactive.csproj @@ -79,7 +79,6 @@ Properties\SolutionInfo.cs - @@ -88,18 +87,21 @@ - + + + + diff --git a/Octokit.Tests/Clients/Enterprise/EnterpriseMigrationClientTests.cs b/Octokit.Tests/Clients/MigrationsClientTests.cs similarity index 86% rename from Octokit.Tests/Clients/Enterprise/EnterpriseMigrationClientTests.cs rename to Octokit.Tests/Clients/MigrationsClientTests.cs index ca262c99..07caafe0 100644 --- a/Octokit.Tests/Clients/Enterprise/EnterpriseMigrationClientTests.cs +++ b/Octokit.Tests/Clients/MigrationsClientTests.cs @@ -6,7 +6,7 @@ using Xunit; namespace Octokit.Tests.Clients { - public class EnterpriseMigrationClientTests + public class MigrationsClientTests { public class TheGetMethod { @@ -14,7 +14,7 @@ namespace Octokit.Tests.Clients public void RequestsCorrectUrl() { var connection = Substitute.For(); - var client = new EnterpriseMigrationsClient(connection); + var client = new MigrationsClient(connection); client.Get("fake", 69); @@ -26,7 +26,7 @@ namespace Octokit.Tests.Clients public async Task EnsuresNonNullAndNonEmptyArguments() { var connection = Substitute.For(); - var client = new EnterpriseMigrationsClient(connection); + var client = new MigrationsClient(connection); await Assert.ThrowsAsync(() => client.Get(null, 69)); await Assert.ThrowsAsync(() => client.Get("", 69)); @@ -39,7 +39,7 @@ namespace Octokit.Tests.Clients public void RequestsCorrectUrl() { var connection = Substitute.For(); - var client = new EnterpriseMigrationsClient(connection); + var client = new MigrationsClient(connection); client.GetAll("fake"); @@ -51,7 +51,7 @@ namespace Octokit.Tests.Clients public async Task EnsuresNonNullAndNonEmptyArguments() { var connection = Substitute.For(); - var client = new EnterpriseMigrationsClient(connection); + var client = new MigrationsClient(connection); await Assert.ThrowsAsync(() => client.GetAll(null)); await Assert.ThrowsAsync(() => client.GetAll("")); @@ -64,7 +64,7 @@ namespace Octokit.Tests.Clients public void RequestsCorrectUrl() { var connection = Substitute.For(); - var client = new EnterpriseMigrationsClient(connection); + var client = new MigrationsClient(connection); var migrationRequest = new StartMigrationRequest(new List { "fake/repo" }); client.Start("fake", migrationRequest); @@ -78,7 +78,7 @@ namespace Octokit.Tests.Clients public async Task EnsuresNonNullAndNonEmptyArguments() { var connection = Substitute.For(); - var client = new EnterpriseMigrationsClient(connection); + var client = new MigrationsClient(connection); var migrationRequest = new StartMigrationRequest(new List { "fake/repo" }); await Assert.ThrowsAsync( @@ -93,7 +93,7 @@ namespace Octokit.Tests.Clients public void PassesRequestBody() { var connection = Substitute.For(); - var client = new EnterpriseMigrationsClient(connection); + var client = new MigrationsClient(connection); var migrationRequest = new StartMigrationRequest(new List { "fake/repo" }); client.Start("fake", migrationRequest); @@ -113,7 +113,7 @@ namespace Octokit.Tests.Clients public void RequestsCorrectUrl() { var connection = Substitute.For(); - var client = new EnterpriseMigrationsClient(connection); + var client = new MigrationsClient(connection); client.GetArchive("fake", 69); @@ -125,7 +125,7 @@ namespace Octokit.Tests.Clients public async Task EnsuresNonNullAndNonEmptyArguments() { var connection = Substitute.For(); - var client = new EnterpriseMigrationsClient(connection); + var client = new MigrationsClient(connection); await Assert.ThrowsAsync(() => client.GetArchive(null, 69)); await Assert.ThrowsAsync(() => client.GetArchive("", 69)); @@ -138,7 +138,7 @@ namespace Octokit.Tests.Clients public void RequestsCorrectUrl() { var connection = Substitute.For(); - var client = new EnterpriseMigrationsClient(connection); + var client = new MigrationsClient(connection); client.DeleteArchive("fake", 69); @@ -150,7 +150,7 @@ namespace Octokit.Tests.Clients public async Task EnsuresNonNullAndNonEmptyArguments() { var connection = Substitute.For(); - var client = new EnterpriseMigrationsClient(connection); + var client = new MigrationsClient(connection); await Assert.ThrowsAsync(() => client.DeleteArchive(null, 69)); await Assert.ThrowsAsync(() => client.DeleteArchive("", 69)); @@ -163,7 +163,7 @@ namespace Octokit.Tests.Clients public void RequestsCorrectUrl() { var connection = Substitute.For(); - var client = new EnterpriseMigrationsClient(connection); + var client = new MigrationsClient(connection); client.UnlockRepository("fake", 69, "repo"); @@ -175,7 +175,7 @@ namespace Octokit.Tests.Clients public async Task EnsuresNonNullAndNonEmptyArguments() { var connection = Substitute.For(); - var client = new EnterpriseMigrationsClient(connection); + var client = new MigrationsClient(connection); await Assert.ThrowsAsync(() => client.UnlockRepository(null, 69, "repo")); await Assert.ThrowsAsync(() => client.UnlockRepository("", 69, "repo")); diff --git a/Octokit.Tests/Octokit.Tests.csproj b/Octokit.Tests/Octokit.Tests.csproj index 2c5eea49..ffba4e4a 100644 --- a/Octokit.Tests/Octokit.Tests.csproj +++ b/Octokit.Tests/Octokit.Tests.csproj @@ -85,9 +85,9 @@ + - @@ -200,7 +200,6 @@ - @@ -211,6 +210,7 @@ + diff --git a/Octokit.Tests/Reactive/Enterprise/ObservableEnterpriseMigrationsClientTests.cs b/Octokit.Tests/Reactive/ObservableMigrationsClientTests.cs similarity index 68% rename from Octokit.Tests/Reactive/Enterprise/ObservableEnterpriseMigrationsClientTests.cs rename to Octokit.Tests/Reactive/ObservableMigrationsClientTests.cs index b3ece2a8..e9ea2965 100644 --- a/Octokit.Tests/Reactive/Enterprise/ObservableEnterpriseMigrationsClientTests.cs +++ b/Octokit.Tests/Reactive/ObservableMigrationsClientTests.cs @@ -3,9 +3,9 @@ using NSubstitute; using Octokit.Reactive; using Xunit; -namespace Octokit.Tests +namespace Octokit.Tests.Reactive { - public class ObservableEnterpriseMigrationsClientTests + public class ObservableMigrationsClientTests { public class TheStartMethod { @@ -13,13 +13,13 @@ namespace Octokit.Tests public void CallsIntoClient() { var github = Substitute.For(); - var client = new ObservableEnterpriseMigrationsClient(github); + var client = new ObservableMigrationsClient(github); var migrationRequest = new StartMigrationRequest( new List { "fake/repo" }, true); client.Start("fake", migrationRequest); - github.Enterprise.Migration.Received(1).Start( + github.Migration.Migrations.Received(1).Start( "fake", Arg.Is(m => m.Equals(migrationRequest))); } @@ -31,10 +31,10 @@ namespace Octokit.Tests public void CallsIntoClient() { var github = Substitute.For(); - var client = new ObservableEnterpriseMigrationsClient(github); + var client = new ObservableMigrationsClient(github); client.GetAll("fake"); - github.Enterprise.Migration.Received(1).GetAll("fake"); + github.Migration.Migrations.Received(1).GetAll("fake"); } } @@ -44,10 +44,10 @@ namespace Octokit.Tests public void CallsIntoClient() { var github = Substitute.For(); - var client = new ObservableEnterpriseMigrationsClient(github); + var client = new ObservableMigrationsClient(github); client.Get("fake", 69); - github.Enterprise.Migration.Received(1).Get("fake", 69); + github.Migration.Migrations.Received(1).Get("fake", 69); } } @@ -57,10 +57,10 @@ namespace Octokit.Tests public void CallsIntoClient() { var github = Substitute.For(); - var client = new ObservableEnterpriseMigrationsClient(github); + var client = new ObservableMigrationsClient(github); client.GetArchive("fake", 69); - github.Enterprise.Migration.Received(1).GetArchive("fake", 69); + github.Migration.Migrations.Received(1).GetArchive("fake", 69); } } @@ -70,10 +70,10 @@ namespace Octokit.Tests public void CallsIntoClient() { var github = Substitute.For(); - var client = new ObservableEnterpriseMigrationsClient(github); + var client = new ObservableMigrationsClient(github); client.DeleteArchive("fake", 69); - github.Enterprise.Migration.Received(1).DeleteArchive("fake", 69); + github.Migration.Migrations.Received(1).DeleteArchive("fake", 69); } } @@ -83,10 +83,10 @@ namespace Octokit.Tests public void CallsIntoClient() { var github = Substitute.For(); - var client = new ObservableEnterpriseMigrationsClient(github); + var client = new ObservableMigrationsClient(github); client.UnlockRepository("fake", 69, "repo"); - github.Enterprise.Migration.Received(1).UnlockRepository("fake", 69, "repo"); + github.Migration.Migrations.Received(1).UnlockRepository("fake", 69, "repo"); } } } diff --git a/Octokit/Clients/Enterprise/EnterpriseClient.cs b/Octokit/Clients/Enterprise/EnterpriseClient.cs index b93ee4c4..aa5bb9d4 100644 --- a/Octokit/Clients/Enterprise/EnterpriseClient.cs +++ b/Octokit/Clients/Enterprise/EnterpriseClient.cs @@ -17,7 +17,6 @@ AdminStats = new EnterpriseAdminStatsClient(apiConnection); Ldap = new EnterpriseLdapClient(apiConnection); License = new EnterpriseLicenseClient(apiConnection); - Migration = new EnterpriseMigrationsClient(apiConnection); Organization = new EnterpriseOrganizationClient(apiConnection); SearchIndexing = new EnterpriseSearchIndexingClient(apiConnection); } @@ -46,15 +45,6 @@ /// public IEnterpriseLicenseClient License { get; private set; } - /// - /// A client for GitHub's Migrations API - /// - /// - /// See the docs - /// for more information. - /// - public IEnterpriseMigrationsClient Migration { get; private set; } - /// /// A client for GitHub's Enterprise Organization API /// diff --git a/Octokit/Clients/Enterprise/IEnterpriseClient.cs b/Octokit/Clients/Enterprise/IEnterpriseClient.cs index 6ed29df3..28a5db22 100644 --- a/Octokit/Clients/Enterprise/IEnterpriseClient.cs +++ b/Octokit/Clients/Enterprise/IEnterpriseClient.cs @@ -32,15 +32,6 @@ /// IEnterpriseLicenseClient License { get; } - /// - /// A client for GitHub's Migrations API - /// - /// - /// See the docs - /// for more information. - /// - IEnterpriseMigrationsClient Migration { get; } - /// /// A client for GitHub's Enterprise Organization API /// diff --git a/Octokit/Clients/IMigrationClient.cs b/Octokit/Clients/IMigrationClient.cs new file mode 100644 index 00000000..f133c169 --- /dev/null +++ b/Octokit/Clients/IMigrationClient.cs @@ -0,0 +1,19 @@ +namespace Octokit +{ + /// + /// A client for GitHub's Migration API. These APIs help you move projects to or from GitHub. + /// + /// + /// Docs: https://developer.github.com/v3/migration/ + /// + public interface IMigrationClient + { + /// + /// The Enterprise Migrations API lets you move a repository from GitHub to GitHub Enterprise. + /// + /// + /// https://developer.github.com/v3/migration/#enterprise-migrations + /// + IMigrationsClient Migrations { get; } + } +} \ No newline at end of file diff --git a/Octokit/Clients/Enterprise/IEnterpriseMigrationsClient.cs b/Octokit/Clients/IMigrationsClient.cs similarity index 98% rename from Octokit/Clients/Enterprise/IEnterpriseMigrationsClient.cs rename to Octokit/Clients/IMigrationsClient.cs index 640f2876..68925a97 100644 --- a/Octokit/Clients/Enterprise/IEnterpriseMigrationsClient.cs +++ b/Octokit/Clients/IMigrationsClient.cs @@ -11,7 +11,7 @@ namespace Octokit /// See the docs /// for more information. /// - public interface IEnterpriseMigrationsClient + public interface IMigrationsClient { /// /// Starts a new migration specified for the given organization. diff --git a/Octokit/Clients/MigrationClient.cs b/Octokit/Clients/MigrationClient.cs new file mode 100644 index 00000000..4faa4478 --- /dev/null +++ b/Octokit/Clients/MigrationClient.cs @@ -0,0 +1,28 @@ +namespace Octokit +{ + /// + /// A client for GitHub's Migration API. These APIs help you move projects to or from GitHub. + /// + /// + /// Docs: https://developer.github.com/v3/migration/ + /// + public class MigrationClient : ApiClient, IMigrationClient + { + /// + /// Instantiate a new GitHub Migration API client and its sub-APIs. + /// + /// An API connection. + public MigrationClient(IApiConnection apiConnection) : base(apiConnection) + { + Migrations = new MigrationsClient(apiConnection); + } + + /// + /// The Enterprise Migrations API lets you move a repository from GitHub to GitHub Enterprise. + /// + /// + /// https://developer.github.com/v3/migration/#enterprise-migrations + /// + public IMigrationsClient Migrations { get; private set; } + } +} \ No newline at end of file diff --git a/Octokit/Clients/Enterprise/EnterpriseMigrationsClient.cs b/Octokit/Clients/MigrationsClient.cs similarity index 96% rename from Octokit/Clients/Enterprise/EnterpriseMigrationsClient.cs rename to Octokit/Clients/MigrationsClient.cs index df66a23a..ce521567 100644 --- a/Octokit/Clients/Enterprise/EnterpriseMigrationsClient.cs +++ b/Octokit/Clients/MigrationsClient.cs @@ -10,13 +10,13 @@ namespace Octokit /// See docs /// for more information. /// - public class EnterpriseMigrationsClient : ApiClient, IEnterpriseMigrationsClient + public class MigrationsClient : ApiClient, IMigrationsClient { /// /// Instantiates a GitHub Migrations API client. /// /// An API connection. - public EnterpriseMigrationsClient(IApiConnection apiConnection) : base(apiConnection) + public MigrationsClient(IApiConnection apiConnection) : base(apiConnection) { } /// diff --git a/Octokit/GitHubClient.cs b/Octokit/GitHubClient.cs index 69577776..4daa1bfc 100644 --- a/Octokit/GitHubClient.cs +++ b/Octokit/GitHubClient.cs @@ -82,22 +82,23 @@ namespace Octokit Connection = connection; var apiConnection = new ApiConnection(connection); - Authorization = new AuthorizationsClient(apiConnection); Activity = new ActivitiesClient(apiConnection); + Authorization = new AuthorizationsClient(apiConnection); + Deployment = new DeploymentsClient(apiConnection); + Enterprise = new EnterpriseClient(apiConnection); + Gist = new GistsClient(apiConnection); + Git = new GitDatabaseClient(apiConnection); Issue = new IssuesClient(apiConnection); + Migration = new MigrationClient(apiConnection); Miscellaneous = new MiscellaneousClient(connection); Notification = new NotificationsClient(apiConnection); Oauth = new OauthClient(connection); Organization = new OrganizationsClient(apiConnection); PullRequest = new PullRequestsClient(apiConnection); Repository = new RepositoriesClient(apiConnection); - Gist = new GistsClient(apiConnection); - User = new UsersClient(apiConnection); - SshKey = new SshKeysClient(apiConnection); - Git = new GitDatabaseClient(apiConnection); Search = new SearchClient(apiConnection); - Deployment = new DeploymentsClient(apiConnection); - Enterprise = new EnterpriseClient(apiConnection); + SshKey = new SshKeysClient(apiConnection); + User = new UsersClient(apiConnection); } /// @@ -167,6 +168,14 @@ namespace Octokit /// public IIssuesClient Issue { get; private set; } + /// + /// Access GitHub's Migration API. + /// + /// + /// Refer to the API documentation for more information: https://developer.github.com/v3/migration/ + /// + public IMigrationClient Migration { get; private set; } + /// /// Access GitHub's Miscellaneous API. /// diff --git a/Octokit/IGitHubClient.cs b/Octokit/IGitHubClient.cs index 29dd910c..f91d99f3 100644 --- a/Octokit/IGitHubClient.cs +++ b/Octokit/IGitHubClient.cs @@ -36,6 +36,14 @@ namespace Octokit /// IIssuesClient Issue { get; } + /// + /// Access GitHub's Migration API. + /// + /// + /// Refer to the API documentation for more information: https://developer.github.com/v3/migration/ + /// + IMigrationClient Migration { get; } + /// /// Access GitHub's Miscellaneous API. /// diff --git a/Octokit/Octokit.csproj b/Octokit/Octokit.csproj index 1282bc30..5e11dcc5 100644 --- a/Octokit/Octokit.csproj +++ b/Octokit/Octokit.csproj @@ -58,21 +58,22 @@ Properties\SolutionInfo.cs + - - + + @@ -80,6 +81,7 @@ +