/// <summary>
        /// Starts a new migration specified for the given organization.
        /// </summary>
        /// <remarks>
        /// https://developer.github.com/v3/migration/migrations/#start-a-migration
        /// </remarks>
        /// <param name="org">The organization for which to start a migration.</param>
        /// <param name="migration">Sprcifies parameters for the migration in a 
        /// <see cref="StartMigrationRequest"/> object.</param>
        /// <returns>The started migration.</returns>
        public async Task<Migration> Start(string org, StartMigrationRequest migration)
        {
            Ensure.ArgumentNotNullOrEmptyString(org, "org");
            Ensure.ArgumentNotNull(migration, "migration");

            var endpoint = ApiUrls.EnterpriseMigrations(org);

            return await ApiConnection.Post<Migration>(endpoint, migration, AcceptHeaders.MigrationsApiPreview);
        }
    public async Task StartNewMigration()
    {
        var repoNames = _repos.Select(repo => repo.Repository.FullName).ToList();
        var migrationRequest = new StartMigrationRequest(repoNames);

        _migrationContext = await _gitHub.Migration.Migrations.Start(_orgName, migrationRequest);

        Assert.Equal(3, _migrationContext.Repositories.Count);
        Assert.Equal(Migration.MigrationState.Pending, _migrationContext.State);

        ChecksMigrationCompletion();
    }