Skip to content

Commit bbfc94d

Browse files
authored
enhance: several commit links improvements (#672)
* Codeberge (https://codeberg.org/) * Gitea (https://gitea.org/) * sourcehut (https://git.sr.ht/)
1 parent 96c2d0b commit bbfc94d

File tree

1 file changed

+23
-5
lines changed

1 file changed

+23
-5
lines changed

src/ViewModels/CommitDetail.cs

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -116,13 +116,19 @@ public CommitDetail(Repository repo)
116116
if (remote.TryGetVisitURL(out var url))
117117
{
118118
if (url.StartsWith("https://github.com/", StringComparison.Ordinal))
119-
WebLinks.Add(new Models.CommitLink() { Name = "Github", URLPrefix = $"{url}/commit/" });
120-
else if (url.StartsWith("https://gitlab.com/", StringComparison.Ordinal))
121-
WebLinks.Add(new Models.CommitLink() { Name = "GitLab", URLPrefix = $"{url}/-/commit/" });
119+
WebLinks.Add(new Models.CommitLink() { Name = CommitUrlTitle("Github", url), URLPrefix = $"{url}/commit/" });
120+
else if (url.StartsWith("https://gitlab.", StringComparison.Ordinal))
121+
WebLinks.Add(new Models.CommitLink() { Name = CommitUrlTitle("GitLab", url), URLPrefix = $"{url}/-/commit/" });
122122
else if (url.StartsWith("https://gitee.com/", StringComparison.Ordinal))
123-
WebLinks.Add(new Models.CommitLink() { Name = "Gitee", URLPrefix = $"{url}/commit/" });
123+
WebLinks.Add(new Models.CommitLink() { Name = CommitUrlTitle("Gitee", url), URLPrefix = $"{url}/commit/" });
124124
else if (url.StartsWith("https://bitbucket.org/", StringComparison.Ordinal))
125-
WebLinks.Add(new Models.CommitLink() { Name = "Bitbucket", URLPrefix = $"{url}/commits/" });
125+
WebLinks.Add(new Models.CommitLink() { Name = CommitUrlTitle("Bitbucket", url), URLPrefix = $"{url}/commits/" });
126+
else if (url.StartsWith("https://codeberg.org/", StringComparison.Ordinal))
127+
WebLinks.Add(new Models.CommitLink() { Name = CommitUrlTitle("Codeberg", url), URLPrefix = $"{url}/commit/" });
128+
else if (url.StartsWith("https://gitea.org/", StringComparison.Ordinal))
129+
WebLinks.Add(new Models.CommitLink() { Name = CommitUrlTitle("Gitea", url), URLPrefix = $"{url}/commit/" });
130+
else if (url.StartsWith("https://git.sr.ht/", StringComparison.Ordinal))
131+
WebLinks.Add(new Models.CommitLink() { Name = CommitUrlTitle("sourcehut", url), URLPrefix = $"{url}/commit/" });
126132
}
127133
}
128134
}
@@ -639,6 +645,18 @@ private void TryToAddContextMenuItemsForGitLFS(ContextMenu menu, string path)
639645
menu.Items.Add(new MenuItem() { Header = "-" });
640646
}
641647

648+
private string CommitUrlTitle(string provider, string url)
649+
{
650+
try
651+
{
652+
return string.Format("{0} ({1})", provider, string.Join('/', url.Split('/')[3..5]));
653+
}
654+
catch
655+
{
656+
return provider;
657+
}
658+
}
659+
642660
[GeneratedRegex(@"^version https://git-lfs.github.com/spec/v\d+\r?\noid sha256:([0-9a-f]+)\r?\nsize (\d+)[\r\n]*$")]
643661
private static partial Regex REG_LFS_FORMAT();
644662

0 commit comments

Comments
 (0)