Add GitLab support

This commit is contained in:
Valentin Brandl
2019-07-28 17:32:50 +02:00
parent ec0254ec75
commit 0b6fe9f5e3
3 changed files with 57 additions and 7 deletions

View File

@ -9,6 +9,7 @@ hostname =
type Provider
= GitHub
| Bitbucket
| GitLab
type alias Url =
@ -29,6 +30,9 @@ toHost prov =
Bitbucket ->
"bitbucket/"
GitLab ->
"gitlab/"
pathSeparator : Provider -> String
pathSeparator prov =
@ -39,7 +43,10 @@ pathSeparator prov =
Bitbucket ->
"src"
GitLab ->
"blob"
toUrl : Url -> String
toUrl { prov, user, repo, gitref, file } =
hostname ++ toHost prov ++ String.join "/" [ user, repo, pathSeparator prov, gitref, file ]
hostname ++ toHost prov ++ String.join "/" [ user, repo, gitref, file ]

View File

@ -7,10 +7,10 @@ parseUrl : String -> Maybe Url
parseUrl url =
stripProtocol url
|> splitProvider
|> Maybe.andThen splitOfHead
|> Maybe.andThen splitOfHead
|> Maybe.andThen splitOfHead
|> Maybe.andThen splitOfHead
|> Maybe.andThen splitOffHead
|> Maybe.andThen splitOffHead
|> Maybe.andThen splitOffHead
|> Maybe.andThen splitOffHead
|> Maybe.andThen
(\( ( ( ( ( prov, user ), repo ), separator ), gitref ), file ) ->
if List.isEmpty file || (separator /= pathSeparator prov) then
@ -27,8 +27,8 @@ parseUrl url =
)
splitOfHead : ( a, List b ) -> Maybe ( ( a, b ), List b )
splitOfHead ( head, tail ) =
splitOffHead : ( a, List b ) -> Maybe ( ( a, b ), List b )
splitOffHead ( head, tail ) =
splitPart tail
|> Maybe.map (\( h, t ) -> ( ( head, h ), t ))
@ -53,6 +53,9 @@ parseProvider prov =
"bitbucket.org" ->
Just Bitbucket
"gitlab.com" ->
Just GitLab
_ ->
Nothing