Skip to content
Permalink
Browse files

Merge pull request #1214 from 117/master

Add numeric username support for SSH urls.
  • Loading branch information...
mcuadros committed Aug 31, 2019
2 parents 3e42b8c + 4c43218 commit 8d20cc5916edf7cfa6a9c5ed069f0640dc823c12
Showing with 61 additions and 1 deletion.
  1. +1 −1 internal/url/url.go
  2. +60 −0 internal/url/url_test.go
@@ -6,7 +6,7 @@ import (

var (
isSchemeRegExp = regexp.MustCompile(`^[^:]+://`)
scpLikeUrlRegExp = regexp.MustCompile(`^(?:(?P<user>[^@]+)@)?(?P<host>[^:\s]+):(?:(?P<port>[0-9]{1,5})/)?(?P<path>[^\\].*)$`)
scpLikeUrlRegExp = regexp.MustCompile(`^(?:(?P<user>[^@]+)@)?(?P<host>[^:\s]+):(?:(?P<port>[0-9]{1,5})(?:\/|:))?(?P<path>[^\\].*\/[^\\].*)$`)
)

// MatchesScheme returns true if the given string matches a URL-like
@@ -0,0 +1,60 @@
package url

import (
"testing"

. "gopkg.in/check.v1"
)

func Test(t *testing.T) { TestingT(t) }

type URLSuite struct{}

var _ = Suite(&URLSuite{})

func (s *URLSuite) TestMatchesScpLike(c *C) {
examples := []string{
"git@github.com:james/bond",
"git@github.com:007/bond",
"git@github.com:22:james/bond",
"git@github.com:22:007/bond",
}

for _, url := range examples {
c.Check(MatchesScpLike(url), Equals, true)
}
}

func (s *URLSuite) TestFindScpLikeComponents(c *C) {
url := "git@github.com:james/bond"
user, host, port, path := FindScpLikeComponents(url)

c.Check(user, Equals, "git")
c.Check(host, Equals, "github.com")
c.Check(port, Equals, "")
c.Check(path, Equals, "james/bond")

url = "git@github.com:007/bond"
user, host, port, path = FindScpLikeComponents(url)

c.Check(user, Equals, "git")
c.Check(host, Equals, "github.com")
c.Check(port, Equals, "")
c.Check(path, Equals, "007/bond")

url = "git@github.com:22:james/bond"
user, host, port, path = FindScpLikeComponents(url)

c.Check(user, Equals, "git")
c.Check(host, Equals, "github.com")
c.Check(port, Equals, "22")
c.Check(path, Equals, "james/bond")

url = "git@github.com:22:007/bond"
user, host, port, path = FindScpLikeComponents(url)

c.Check(user, Equals, "git")
c.Check(host, Equals, "github.com")
c.Check(port, Equals, "22")
c.Check(path, Equals, "007/bond")
}

0 comments on commit 8d20cc5

Please sign in to comment.
You can’t perform that action at this time.