diff --git a/Octokit.Tests.Integration/Clients/MigrationsClientTests.cs b/Octokit.Tests.Integration/Clients/MigrationsClientTests.cs
new file mode 100644
index 00000000..ab765b26
--- /dev/null
+++ b/Octokit.Tests.Integration/Clients/MigrationsClientTests.cs
@@ -0,0 +1,103 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using Octokit;
+using Octokit.Tests.Integration;
+using Xunit;
+
+public class MigrationsClientTests
+{
+ public class TheStartNewMethod
+ {
+ readonly IGitHubClient _gitHub;
+
+ public TheStartNewMethod()
+ {
+ _gitHub = Helper.GetAuthenticatedClient();
+
+ }
+
+ [IntegrationTest]
+ public async Task CanStartNewMigration()
+ {
+ var organization = Environment.GetEnvironmentVariable("OCTOKIT_GITHUBORGANIZATION");
+ var repos = (await _gitHub.Repository.GetAllForOrg(organization));
+ var repoNames = repos.Select(repo => repo.FullName).ToList();
+ var migrationRequest = new StartMigrationRequest(repoNames);
+
+ var migration = await _gitHub.Migration.Migrations.Start(organization, migrationRequest);
+
+ Assert.Equal(repos.Count, migration.Repositories.Count);
+ Assert.Equal("pending", migration.State);
+ }
+ }
+
+ public class TheGetAllMethod
+ {
+ readonly IGitHubClient _gitHub;
+
+ public TheGetAllMethod()
+ {
+ _gitHub = Helper.GetAuthenticatedClient();
+ }
+
+ [IntegrationTest]
+ public async Task CanGetAllMigrations()
+ {
+ var organization = Environment.GetEnvironmentVariable("OCTOKIT_GITHUBORGANIZATION");
+ var migrations = await _gitHub.Migration.Migrations.GetAll(organization);
+
+ Assert.NotNull(migrations);
+ Assert.NotEqual(0, migrations.Count);
+ }
+ }
+
+ public class TheGetMethod
+ {
+ readonly IGitHubClient _gitHub;
+
+ public TheGetMethod()
+ {
+ _gitHub = Helper.GetAuthenticatedClient();
+ }
+
+ [IntegrationTest]
+ public async Task CanGetMigration()
+ {
+ var organization = Environment.GetEnvironmentVariable("OCTOKIT_GITHUBORGANIZATION");
+ var repos = (await _gitHub.Repository.GetAllForOrg(organization));
+ var repoNames = repos.Select(repo => repo.FullName).ToList();
+ var migrationRequest = new StartMigrationRequest(repoNames);
+ var migration = await _gitHub.Migration.Migrations.Start(organization, migrationRequest);
+
+ var retreivedMigration = await _gitHub.Migration.Migrations.Get(organization, migration.Id);
+
+ Assert.Equal(migration.Guid, retreivedMigration.Guid);
+ }
+ }
+
+ public class TheGetArchiveMethod
+ {
+ readonly IGitHubClient _gitHub;
+
+ public TheGetArchiveMethod()
+ {
+ _gitHub = Helper.GetAuthenticatedClient();
+ }
+
+ [IntegrationTest]
+ public async Task CanGetArchive()
+ {
+ var organization = Environment.GetEnvironmentVariable("OCTOKIT_GITHUBORGANIZATION");
+ var repos = (await _gitHub.Repository.GetAllForOrg(organization));
+ var repoNames = repos.Select(repo => repo.FullName).ToList();
+ var migrationRequest = new StartMigrationRequest(repoNames);
+ var migration = await _gitHub.Migration.Migrations.Start(organization, migrationRequest);
+
+ var url = await _gitHub.Migration.Migrations.GetArchive(organization, migration.Id);
+
+ Assert.NotEmpty(url);
+ }
+ }
+}
diff --git a/Octokit.Tests.Integration/Octokit.Tests.Integration.csproj b/Octokit.Tests.Integration/Octokit.Tests.Integration.csproj
index d9541070..b4617093 100644
--- a/Octokit.Tests.Integration/Octokit.Tests.Integration.csproj
+++ b/Octokit.Tests.Integration/Octokit.Tests.Integration.csproj
@@ -92,6 +92,7 @@
+