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 ShouldBuildAHTTPSCommitLink() { var commit = new ConventionalCommit { Sha = "734713bc047d87bf7eac9674765ae793478c50d3" }; var linkBuilder = new AzureLinkBuilder("https://[email protected]/dosse/DosSE.ERP.Cloud/_git/ERP.git"); var link = linkBuilder.BuildCommitLink(commit); link.ShouldBe("https://[email protected]/dosse/DosSE.ERP.Cloud/_git/ERP/commit/734713bc047d87bf7eac9674765ae793478c50d3"); }