public static IChangelogLinkBuilder CreateFor(Repository repository)
    {
        var origin = repository.Network.Remotes.FirstOrDefault(remote => remote.Name == "origin") ?? repository.Network.Remotes.FirstOrDefault();

        if (origin == null)
        {
            return(new PlainLinkBuilder());
        }

        if (GithubLinkBuilder.IsPushUrl(origin.PushUrl))
        {
            return(new GithubLinkBuilder(origin.PushUrl));
        }
        else if (AzureLinkBuilder.IsPushUrl(origin.PushUrl))
        {
            return(new AzureLinkBuilder(origin.PushUrl));
        }
        else if (GitlabLinkBuilder.IsPushUrl(origin.PushUrl))
        {
            return(new GitlabLinkBuilder(origin.PushUrl));
        }
        else if (BitbucketLinkBuilder.IsPushUrl(origin.PushUrl))
        {
            return(new BitbucketLinkBuilder(origin.PushUrl));
        }

        return(new PlainLinkBuilder());
    }
示例#2
0
    public void ShouldBuildAComHTTPSTagLink()
    {
        var linkBuilder = new BitbucketLinkBuilder(httpsComPushUrl);
        var link        = linkBuilder.BuildVersionTagLink(new SemanticVersion(1, 0, 0));

        link.ShouldBe("https://bitbucket.com/mobiloitteinc/dotnet-codebase/src/v1.0.0");
    }
示例#3
0
    public void ShouldBuildAnOrgSSHTagLink()
    {
        var linkBuilder = new BitbucketLinkBuilder(sshOrgPushUrl);
        var link        = linkBuilder.BuildVersionTagLink(new SemanticVersion(1, 0, 0));

        link.ShouldBe("https://bitbucket.org/mobiloitteinc/dotnet-codebase/src/v1.0.0");
    }
示例#4
0
    public void ShouldBuildAnOrgSSHCommitLink()
    {
        var commit = new ConventionalCommit
        {
            Sha = "734713bc047d87bf7eac9674765ae793478c50d3"
        };

        var linkBuilder = new BitbucketLinkBuilder(sshOrgPushUrl);
        var link        = linkBuilder.BuildCommitLink(commit);

        link.ShouldBe("https://bitbucket.org/mobiloitteinc/dotnet-codebase/commits/734713bc047d87bf7eac9674765ae793478c50d3");
    }