@@ -20,26 +20,29 @@ public static List<CommitLink> Get(List<Remote> remotes)
20
20
21
21
foreach ( var remote in remotes )
22
22
{
23
- if ( remote . TryGetVisitURL ( out var url ) )
23
+ if ( remote . TryGetVisitURL ( out var link ) )
24
24
{
25
- var trimmedUrl = url . AsSpan ( ) ;
26
- if ( url . EndsWith ( ".git" ) )
27
- trimmedUrl = url . AsSpan ( 0 , url . Length - 4 ) ;
25
+ if ( link . EndsWith ( ".git" ) )
26
+ link = link . Substring ( 0 , link . Length - 4 ) ;
28
27
29
- if ( url . StartsWith ( "https://github.com/" , StringComparison . Ordinal ) )
30
- outs . Add ( new ( $ "GitHub ({ trimmedUrl [ 19 ..] } )", $ "{ url } /commit/") ) ;
31
- else if ( url . StartsWith ( "https://gitlab." , StringComparison . Ordinal ) )
32
- outs . Add ( new ( $ "GitLab ({ trimmedUrl [ ( trimmedUrl [ 15 ..] . IndexOf ( '/' ) + 16 ) ..] } )", $ "{ url } /-/commit/") ) ;
33
- else if ( url . StartsWith ( "https://gitee.com/" , StringComparison . Ordinal ) )
34
- outs . Add ( new ( $ "Gitee ({ trimmedUrl [ 18 ..] } )", $ "{ url } /commit/") ) ;
35
- else if ( url . StartsWith ( "https://bitbucket.org/" , StringComparison . Ordinal ) )
36
- outs . Add ( new ( $ "BitBucket ({ trimmedUrl [ 22 ..] } )", $ "{ url } /commits/") ) ;
37
- else if ( url . StartsWith ( "https://codeberg.org/" , StringComparison . Ordinal ) )
38
- outs . Add ( new ( $ "Codeberg ({ trimmedUrl [ 21 ..] } )", $ "{ url } /commit/") ) ;
39
- else if ( url . StartsWith ( "https://gitea.org/" , StringComparison . Ordinal ) )
40
- outs . Add ( new ( $ "Gitea ({ trimmedUrl [ 18 ..] } )", $ "{ url } /commit/") ) ;
41
- else if ( url . StartsWith ( "https://git.sr.ht/" , StringComparison . Ordinal ) )
42
- outs . Add ( new ( $ "sourcehut ({ trimmedUrl [ 18 ..] } )", $ "{ url } /commit/") ) ;
28
+ var uri = new Uri ( link , UriKind . Absolute ) ;
29
+ var host = uri . Host ;
30
+ var route = uri . AbsolutePath . TrimStart ( '/' ) ;
31
+
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 ( "git.sr.ht" , StringComparison . Ordinal ) )
45
+ outs . Add ( new ( $ "sourcehut ({ route } )", $ "{ link } /commit/") ) ;
43
46
}
44
47
}
45
48
0 commit comments