Skip to content

Commit 3ced2b7

Browse files
committed
code_review: PR #1635
Signed-off-by: leo <[email protected]>
1 parent 2437475 commit 3ced2b7

File tree

1 file changed

+22
-23
lines changed

1 file changed

+22
-23
lines changed

src/Models/CommitLink.cs

Lines changed: 22 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
using System;
22
using System.Collections.Generic;
3-
using System.Text.RegularExpressions;
43

54
namespace SourceGit.Models
65
{
7-
public partial class CommitLink
6+
public class CommitLink
87
{
98
public string Name { get; set; } = null;
109
public string URLPrefix { get; set; } = null;
@@ -15,35 +14,35 @@ public CommitLink(string name, string prefix)
1514
URLPrefix = prefix;
1615
}
1716

18-
[GeneratedRegex(@"^(http|https)://[^/]*gitlab[^/]*(:[0-9]+)?.*$")]
19-
private static partial Regex REG_GITLAB();
20-
2117
public static List<CommitLink> Get(List<Remote> remotes)
2218
{
2319
var outs = new List<CommitLink>();
2420

2521
foreach (var remote in remotes)
2622
{
27-
if (remote.TryGetVisitURL(out var url))
23+
if (remote.TryGetVisitURL(out var link))
2824
{
29-
var trimmedUrl = url.AsSpan();
30-
if (url.EndsWith(".git"))
31-
trimmedUrl = url.AsSpan(0, url.Length - 4);
25+
if (link.EndsWith(".git"))
26+
link = link.Substring(0, link.Length - 4);
27+
28+
var uri = new Uri(link, UriKind.Absolute);
29+
var host = uri.Host;
30+
var route = uri.AbsolutePath.TrimStart('/');
3231

33-
if (url.StartsWith("https://github.com/", StringComparison.Ordinal))
34-
outs.Add(new($"GitHub ({trimmedUrl[19..]})", $"{url}/commit/"));
35-
else if (REG_GITLAB().IsMatch(url))
36-
outs.Add(new($"GitLab ({trimmedUrl[(trimmedUrl[15..].IndexOf('/') + 16)..]})", $"{url}/-/commit/"));
37-
else if (url.StartsWith("https://gitee.com/", StringComparison.Ordinal))
38-
outs.Add(new($"Gitee ({trimmedUrl[18..]})", $"{url}/commit/"));
39-
else if (url.StartsWith("https://bitbucket.org/", StringComparison.Ordinal))
40-
outs.Add(new($"BitBucket ({trimmedUrl[22..]})", $"{url}/commits/"));
41-
else if (url.StartsWith("https://codeberg.org/", StringComparison.Ordinal))
42-
outs.Add(new($"Codeberg ({trimmedUrl[21..]})", $"{url}/commit/"));
43-
else if (url.StartsWith("https://gitea.org/", StringComparison.Ordinal))
44-
outs.Add(new($"Gitea ({trimmedUrl[18..]})", $"{url}/commit/"));
45-
else if (url.StartsWith("https://git.sr.ht/", StringComparison.Ordinal))
46-
outs.Add(new($"sourcehut ({trimmedUrl[18..]})", $"{url}/commit/"));
32+
if (host.Equals("github.com", StringComparison.Ordinal))
33+
outs.Add(new($"GitHub ({route})", $"{link}/commit/"));
34+
else if (host.Contains("gitlab", StringComparison.Ordinal))
35+
outs.Add(new($"GitLab ({route})", $"{link}/-/commit/"));
36+
else if (host.Equals("gitee.com", StringComparison.Ordinal))
37+
outs.Add(new($"Gitee ({route})", $"{link}/commit/"));
38+
else if (host.Equals("bitbucket.org", StringComparison.Ordinal))
39+
outs.Add(new($"BitBucket ({route})", $"{link}/commits/"));
40+
else if (host.Equals("codeberg.org", StringComparison.Ordinal))
41+
outs.Add(new($"Codeberg ({route})", $"{link}/commit/"));
42+
else if (host.Equals("gitea.org", StringComparison.Ordinal))
43+
outs.Add(new($"Gitea ({route})", $"{link}/commit/"));
44+
else if (host.Equals("github.com", StringComparison.Ordinal))
45+
outs.Add(new($"sourcehut ({route})", $"{link}/commit/"));
4746
}
4847
}
4948

0 commit comments

Comments
 (0)