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()); }
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"); }
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"); }
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"); }