Пример #1
0
    static Task Main()
    {
        var githubToken = Environment.GetEnvironmentVariable("Octokit_OAuthToken");

        var credentials = new Credentials(githubToken);
        var sync        = new RepoSync(credentials, "NServiceBusExtensions", "Home", "master", Console.WriteLine);

        sync.AddSourceItem(TreeEntryTargetType.Blob, "src/RepoSync/Source/.editorconfig", ".editorconfig");
        sync.AddSourceItem(TreeEntryTargetType.Blob, "src/RepoSync/Source/ISSUE_TEMPLATE/bug_report.md", ".github/ISSUE_TEMPLATE/bug_report.md");
        sync.AddSourceItem(TreeEntryTargetType.Blob, "src/RepoSync/Source/ISSUE_TEMPLATE/feature_proposal.md", ".github/ISSUE_TEMPLATE/feature_proposal.md");
        sync.AddSourceItem(TreeEntryTargetType.Blob, "src/RepoSync/Source/pull_request_template.md", ".github/pull_request_template.md");
        sync.AddTarget("NServiceBusExtensions", "NServiceBus.Attachments", "master");
        sync.AddTarget("NServiceBusExtensions", "NServiceBus.AuditFilter", "master");
        sync.AddTarget("NServiceBusExtensions", "NServiceBus.Bond", "master");
        sync.AddTarget("NServiceBusExtensions", "NServiceBus.MessagePack", "master");
        sync.AddTarget("NServiceBusExtensions", "NServiceBus.HandlerOrdering", "master");
        sync.AddTarget("NServiceBusExtensions", "NServiceBus.Hyperion", "master");
        sync.AddTarget("NServiceBusExtensions", "Newtonsoft.Json.Encryption", "master");
        sync.AddTarget("NServiceBusExtensions", "NServiceBus.Jil", "master");
        sync.AddTarget("NServiceBusExtensions", "NServiceBus.MicrosoftLogging", "master");
        sync.AddTarget("NServiceBusExtensions", "NServiceBus.MsgPack", "master");
        sync.AddTarget("NServiceBusExtensions", "NServiceBus.Native", "master");
        sync.AddTarget("NServiceBusExtensions", "NServiceBus.ProtoBufGoogle", "master");
        sync.AddTarget("NServiceBusExtensions", "NServiceBus.ProtoBufNet", "master");
        sync.AddTarget("NServiceBusExtensions", "NServiceBus.Validation", "master");
        sync.AddTarget("NServiceBusExtensions", "NServiceBus.Serilog", "master");
        sync.AddTarget("NServiceBusExtensions", "NServiceBus.Utf8Json", "master");
        sync.AddTarget("NServiceBusExtensions", "NServiceBus.Wire", "master");
        sync.AddTarget("NServiceBusExtensions", "NServiceBus.ZeroFormatter", "master");
        return(sync.Sync(SyncOutput.MergePullRequest));
    }
Пример #2
0
 private static void AddCommonItems(RepoSync sync)
 {
     sync.AddSourceItem(TreeEntryTargetType.Blob, "RepoSync/Source/.editorconfig", "src/.editorconfig");
     sync.AddSourceItem(TreeEntryTargetType.Blob, "RepoSync/Source/config.yml", ".github/ISSUE_TEMPLATE/config.yml");
     sync.AddSourceItem(TreeEntryTargetType.Blob, "RepoSync/Source/on-tag-do-release.yml", ".github/workflows/on-tag-do-release.yml");
     sync.AddSourceItem(TreeEntryTargetType.Blob, "RepoSync/Source/merge-dependabot.yml", ".github/workflows/merge-dependabot.yml");
     sync.AddSourceItem(TreeEntryTargetType.Blob, "RepoSync/Source/dependabot.yml", ".github/dependabot.yml");
 }
Пример #3
0
    static RepoSync BuildRepoSync(SyncMode syncMode)
    {
        var credentials = CredentialsHelper.Credentials;

        var repoSync = new RepoSync(syncMode: syncMode);

        repoSync.AddSourceRepository(new RepositoryInfo(credentials, "owner", "GitHubSync.TestRepository", "source"));

        return(repoSync);
    }
Пример #4
0
    static Task Main()
    {
        var githubToken = Environment.GetEnvironmentVariable("Octokit_OAuthToken");

        var credentials = new Credentials(githubToken);
        var repoSync    = new RepoSync(credentials, "Fody", "Fody", "master", Console.WriteLine);

        repoSync.AddSourceItem(TreeEntryTargetType.Blob, "RepoSync/appveyor.yml", "appveyor.yml");
        repoSync.AddTarget("Fody", "Caseless", "master");

        return(repoSync.Sync());
    }
Пример #5
0
    static Task Main()
    {
        var githubToken = Environment.GetEnvironmentVariable("Octokit_OAuthToken");

        var credentials = new Credentials(githubToken);

        var sync = new RepoSync(
            log: Console.WriteLine,
            defaultCredentials: credentials);

        sync.AddSourceRepository(
            owner: "Fody",
            repository: "Home",
            branch: "master");

        //sync.AddSourceItem(TreeEntryTargetType.Blob, "RepoSync/appveyor.yml", "appveyor.yml");
        sync.AddSourceItem(TreeEntryTargetType.Blob, "src/RepoSync/Source/.editorconfig", ".editorconfig");
        sync.AddTargetRepository("Fody", "Fody", "master");
        sync.AddTargetRepository("Fody", "Anotar", "master");
        sync.AddTargetRepository("Fody", "AsyncErrorHandler", "master");
        sync.AddTargetRepository("Fody", "BasicFodyAddin", "master");
        sync.AddTargetRepository("Fody", "Caseless", "master");
        sync.AddTargetRepository("Fody", "ConfigureAwait", "master");
        sync.AddTargetRepository("Fody", "Costura", "master");
        sync.AddTargetRepository("Fody", "EmptyConstructor", "master");
        sync.AddTargetRepository("Fody", "Equals", "master");
        sync.AddTargetRepository("Fody", "ExtraConstraints", "master");
        sync.AddTargetRepository("Fody", "Freezable", "master");
        sync.AddTargetRepository("Fody", "Immutable", "master");
        sync.AddTargetRepository("Fody", "InfoOf", "master");
        sync.AddTargetRepository("Fody", "Ionad", "master");
        sync.AddTargetRepository("Fody", "Janitor", "master");
        sync.AddTargetRepository("Fody", "LoadAssembliesOnStartup", "master");
        sync.AddTargetRepository("Fody", "MethodDecorator", "master");
        sync.AddTargetRepository("Fody", "MethodTimer", "master");
        sync.AddTargetRepository("Fody", "ModuleInit", "master");
        sync.AddTargetRepository("Fody", "NullGuard", "master");
        sync.AddTargetRepository("Fody", "Obsolete", "master");
        sync.AddTargetRepository("Fody", "PropertyChanged", "master");
        sync.AddTargetRepository("Fody", "PropertyChanging", "master");
        sync.AddTargetRepository("Fody", "Publicize", "master");
        sync.AddTargetRepository("Fody", "Resourcer", "master");
        sync.AddTargetRepository("Fody", "Scalpel", "master");
        sync.AddTargetRepository("Fody", "ToString", "master");
        sync.AddTargetRepository("Fody", "Unsealed", "master");
        sync.AddTargetRepository("Fody", "Usable", "master");
        sync.AddTargetRepository("Fody", "Validar", "master");
        sync.AddTargetRepository("Fody", "Virtuosity", "master");
        sync.AddTargetRepository("Fody", "Visualize", "master");

        return(sync.Sync(SyncOutput.MergePullRequest));
    }
Пример #6
0
    public Task SyncCommit()
    {
        var credentials = CredentialsHelper.Credentials;
        var repoSync    = new RepoSync(WriteLog);

        repoSync.AddSourceRepository(new RepositoryInfo(credentials, "SimonCropp", "GitHubSync.TestRepository", "source"));
        //repoSync.AddBlob("sourceFile.txt");
        repoSync.RemoveBlob("IDoNotExist/MeNeither.txt");
        repoSync.RemoveBlob("README.md");
        repoSync.AddTargetRepository(new RepositoryInfo(credentials, "SimonCropp", "GitHubSync.TestRepository", "targetForCommit"));

        return(repoSync.Sync(SyncOutput.CreateCommit));
    }
Пример #7
0
    public Task SyncPr()
    {
        var credentials = CredentialsHelper.Credentials;
        var repoSync    = new RepoSync(WriteLog);

        repoSync.AddSourceRepository(new RepositoryInfo(credentials, "SimonCropp", "GitHubSync.TestRepository", "source"));
        //repoSync.AddBlob("sourceFile.txt");
        repoSync.RemoveBlob("IDoNotExist/MeNeither.txt");
        repoSync.RemoveBlob("a/b/c/file.txt");
        repoSync.RemoveBlob("a/b/file.txt");
        repoSync.AddTargetRepository(new RepositoryInfo(credentials, "SimonCropp", "GitHubSync.TestRepository", "target"));

        return(repoSync.Sync());
    }
Пример #8
0
    public async Task SyncCommit()
    {
        var credentials = CredentialsHelper.Credentials;
        var repoSync    = new RepoSync(WriteLine);

        await using var repoContext = await TempRepoContext.Create(Context.MethodName, this);

        repoSync.AddSourceRepository(new RepositoryInfo(credentials, "SimonCropp", "GitHubSync.TestRepository", "source"));
        repoSync.RemoveBlob("README.md");
        repoSync.AddTargetRepository(new RepositoryInfo(credentials, "SimonCropp", "GitHubSync.TestRepository", repoContext.TempBranchName));

        var sync = await repoSync.Sync(SyncOutput.CreateCommit);

        await repoContext.VerifyCommit(sync.Single());
    }
Пример #9
0
    static Task Main()
    {
        var githubToken = Environment.GetEnvironmentVariable("Octokit_OAuthToken");

        var credentials = new Credentials(githubToken);
        var sync        = new RepoSync(credentials, "Fody", "Home", "master", Console.WriteLine);

        //sync.AddSourceItem(TreeEntryTargetType.Blob, "RepoSync/appveyor.yml", "appveyor.yml");
        sync.AddSourceItem(TreeEntryTargetType.Blob, "RepoSync/Source/.editorconfig", ".editorconfig");
        sync.AddSourceItem(TreeEntryTargetType.Blob, "RepoSync/Source/bug_report.md", ".github/ISSUE_TEMPLATE/bug_report.md");
        sync.AddSourceItem(TreeEntryTargetType.Blob, "RepoSync/Source/feature_proposal.md", ".github/ISSUE_TEMPLATE/feature_proposal.md");
        sync.AddSourceItem(TreeEntryTargetType.Blob, "RepoSync/Source/pull_request_template.md", ".github/pull_request_template.md");
        sync.AddTarget("Fody", "Fody", "master");
        sync.AddTarget("Fody", "Anotar", "master");
        sync.AddTarget("Fody", "AsyncErrorHandler", "master");
        sync.AddTarget("Fody", "BasicFodyAddin", "master");
        sync.AddTarget("Fody", "Caseless", "master");
        sync.AddTarget("Fody", "ConfigureAwait", "master");
        sync.AddTarget("Fody", "Costura", "master");
        sync.AddTarget("Fody", "EmptyConstructor", "master");
        sync.AddTarget("Fody", "Equals", "master");
        sync.AddTarget("Fody", "ExtraConstraints", "master");
        sync.AddTarget("Fody", "Fielder", "master");
        sync.AddTarget("Fody", "Freezable", "master");
        sync.AddTarget("Fody", "Immutable", "master");
        sync.AddTarget("Fody", "InfoOf", "master");
        sync.AddTarget("Fody", "Ionad", "master");
        sync.AddTarget("Fody", "Janitor", "master");
        sync.AddTarget("Fody", "LoadAssembliesOnStartup", "master");
        sync.AddTarget("Fody", "MethodDecorator", "master");
        sync.AddTarget("Fody", "MethodTimer", "master");
        sync.AddTarget("Fody", "ModuleInit", "master");
        sync.AddTarget("Fody", "NullGuard", "master");
        sync.AddTarget("Fody", "Obsolete", "master");
        sync.AddTarget("Fody", "PropertyChanged", "master");
        sync.AddTarget("Fody", "PropertyChanging", "master");
        sync.AddTarget("Fody", "Publicize", "master");
        sync.AddTarget("Fody", "Resourcer", "master");
        sync.AddTarget("Fody", "Scalpel", "master");
        sync.AddTarget("Fody", "ToString", "master");
        sync.AddTarget("Fody", "Unsealed", "master");
        sync.AddTarget("Fody", "Usable", "master");
        sync.AddTarget("Fody", "Validar", "master");
        sync.AddTarget("Fody", "Virtuosity", "master");
        sync.AddTarget("Fody", "Visualize", "master");

        return(sync.Sync(SyncOutput.MergePullRequest));
    }
Пример #10
0
    RepoSync BuildSync()
    {
        var githubToken = Environment.GetEnvironmentVariable("Octokit_OAuthToken");

        var credentials = new Credentials(githubToken);
        var sync        = new RepoSync(
            log: WriteLine,
            defaultCredentials: credentials,
            syncMode: SyncMode.ExcludeAllByDefault);

        sync.AddSourceRepository(
            owner: "SimonCropp",
            repository: "Scratch",
            branch: "main");
        return(sync);
    }
Пример #11
0
    public async Task SyncPrExcludeAllByDefault()
    {
        var credentials = CredentialsHelper.Credentials;
        var repoSync    = new RepoSync(WriteLine, syncMode: SyncMode.ExcludeAllByDefault);

        await using var repoContext = await TempRepoContext.Create(Context.MethodName, this);

        repoSync.AddSourceRepository(new RepositoryInfo(credentials, "SimonCropp", "GitHubSync.TestRepository", "source"));
        repoSync.AddBlob("sourceFile.txt");
        repoSync.AddSourceItem(TreeEntryTargetType.Blob, "sourceFile.txt", "nested/sourceFile.txt");
        repoSync.AddTargetRepository(new RepositoryInfo(credentials, "SimonCropp", "GitHubSync.TestRepository", repoContext.TempBranchName));

        var sync = await repoSync.Sync();

        await repoContext.VerifyPullRequest(sync.Single());
    }
Пример #12
0
#pragma warning disable CS1998
    // ReSharper disable once UnusedParameter.Local
    static async Task Verify(RepoSync repoSync)
#pragma warning restore CS1998
    {
        // Note: we can't verify against local dummy repositories (yet)
        //foreach (var target in repoSync.targets)
        //{
        //    var syncContext = await repoSync.CalculateSyncContext(target);

        //    await Verify(
        //        new
        //        {
        //            syncContext.Diff,
        //            syncContext.Description,
        //            repoSync.sources
        //        });
        //}
    }
Пример #13
0
    public async Task SyncPr(Credentials octokitCredentials)
    {
        #region usage
        // Create a new RepoSync
        var repoSync = new RepoSync(
            log: Console.WriteLine);

        // Add source repo(s)
        repoSync.AddSourceRepository(new RepositoryInfo(
                                         // Valid credentials for the source repo and all target repos
                                         credentials: octokitCredentials,
                                         owner: "UserOrOrg",
                                         repository: "TheSingleSourceRepository",
                                         branch: "master"));

        // Add sources(s), only allowed when SyncMode == ExcludeAllByDefault
        repoSync.AddBlob("sourceFile.txt");
        repoSync.AddBlob("code.cs");

        // Remove sources(s), only allowed when SyncMode == IncludeAllByDefault
        repoSync.AddBlob("sourceFile.txt");
        repoSync.AddBlob("code.cs");

        // Add target repo(s)
        repoSync.AddTargetRepository(new RepositoryInfo(
                                         credentials: octokitCredentials,
                                         owner: "UserOrOrg",
                                         repository: "TargetRepo1",
                                         branch: "master"));

        repoSync.AddTargetRepository(new RepositoryInfo(
                                         credentials: octokitCredentials,
                                         owner: "UserOrOrg",
                                         repository: "TargetRepo2",
                                         branch: "master"));

        // Run the sync
        await repoSync.Sync(syncOutput : SyncOutput.MergePullRequest);

        #endregion
    }
Пример #14
0
    static Task Main()
    {
        var githubToken = Environment.GetEnvironmentVariable("Octokit_OAuthToken");

        var credentials = new Credentials(githubToken);
        var sync        = new RepoSync(
            log: Console.WriteLine,
            defaultCredentials: credentials,
            syncMode: SyncMode.ExcludeAllByDefault);

        sync.AddSourceRepository(
            owner: "NServiceBusExtensions",
            repository: "Home",
            branch: "master");

        sync.AddSourceItem(TreeEntryTargetType.Blob, "src/RepoSync/Source/.editorconfig", "src/.editorconfig");
        sync.AddSourceItem(TreeEntryTargetType.Blob, "src/RepoSync/Source/license.txt", "license.txt");
        sync.AddSourceItem(TreeEntryTargetType.Blob, "src/RepoSync/Source/workflows/on-push-do-doco.yml", ".github/workflows/on-push-do-doco.yml");
        sync.AddSourceItem(TreeEntryTargetType.Blob, "src/RepoSync/Source/workflows/on-tag-do-release.yml", ".github/workflows/on-tag-do-release.yml");
        sync.AddTargetRepository("NServiceBusExtensions", "NServiceBus.Attachments", "master");
        sync.AddTargetRepository("NServiceBusExtensions", "NServiceBus.AuditFilter", "master");
        sync.AddTargetRepository("NServiceBusExtensions", "NServiceBus.Bond", "master");
        sync.AddTargetRepository("NServiceBusExtensions", "NServiceBus.MessagePack", "master");
        sync.AddTargetRepository("NServiceBusExtensions", "NServiceBus.HandlerOrdering", "master");
        sync.AddTargetRepository("NServiceBusExtensions", "NServiceBus.Hyperion", "master");
        sync.AddTargetRepository("NServiceBusExtensions", "Newtonsoft.Json.Encryption", "master");
        sync.AddTargetRepository("NServiceBusExtensions", "NServiceBus.Jil", "master");
        sync.AddTargetRepository("NServiceBusExtensions", "NServiceBus.MicrosoftLogging", "master");
        sync.AddTargetRepository("NServiceBusExtensions", "NServiceBus.MsgPack", "master");
        sync.AddTargetRepository("NServiceBusExtensions", "NServiceBus.Native", "master");
        sync.AddTargetRepository("NServiceBusExtensions", "NServiceBus.ProtoBufGoogle", "master");
        sync.AddTargetRepository("NServiceBusExtensions", "NServiceBus.ProtoBufNet", "master");
        sync.AddTargetRepository("NServiceBusExtensions", "NServiceBus.Validation", "master");
        sync.AddTargetRepository("NServiceBusExtensions", "NServiceBus.Serilog", "master");
        sync.AddTargetRepository("NServiceBusExtensions", "NServiceBus.Utf8Json", "master");
        sync.AddTargetRepository("NServiceBusExtensions", "NServiceBus.Wire", "master");
        sync.AddTargetRepository("NServiceBusExtensions", "Verify.NServiceBus", "master");
        return(sync.Sync(SyncOutput.MergePullRequest));
    }
Пример #15
0
    static Task SyncRepository(Context context, Repository targetRepository, Credentials credentials)
    {
        var sync = new RepoSync(Console.WriteLine);

        var targetInfo = BuildInfo(targetRepository.Url, targetRepository.Branch, credentials);

        sync.AddTargetRepository(targetInfo);

        foreach (var sourceRepository in targetRepository.Templates
                 .Select(_ => context.Templates.First(x => x.name == _)))
        {
            var sourceInfo = BuildInfo(sourceRepository.url, sourceRepository.branch, credentials);
            sync.AddSourceRepository(sourceInfo);
        }

        var syncOutput = SyncOutput.CreatePullRequest;

        if (targetRepository.AutoMerge)
        {
            syncOutput = SyncOutput.MergePullRequest;
        }

        return(sync.Sync(syncOutput));
    }