1
0
Fork 0
mirror of https://github.com/moby/moby.git synced 2022-11-09 12:21:53 -05:00

Allow git@ prefixes for any hosted git service

Signed-off-by: Aidan Hobson Sayers <aidanhs@cantab.net>
This commit is contained in:
Aidan Hobson Sayers 2014-11-14 01:52:55 +00:00
parent 748fe7a0fa
commit c7e4cc4a53
3 changed files with 27 additions and 8 deletions

View file

@ -462,7 +462,7 @@ Supported formats are: bzip2, gzip and xz.
This will clone the GitHub repository and use the cloned repository as This will clone the GitHub repository and use the cloned repository as
context. The Dockerfile at the root of the context. The Dockerfile at the root of the
repository is used as Dockerfile. Note that you repository is used as Dockerfile. Note that you
can specify an arbitrary Git repository by using the `git://` can specify an arbitrary Git repository by using the `git://` or `git@`
schema. schema.
> **Note:** `docker build` will return a `no such file or directory` error > **Note:** `docker build` will return a `no such file or directory` error

View file

@ -293,7 +293,7 @@ func IsURL(str string) bool {
} }
func IsGIT(str string) bool { func IsGIT(str string) bool {
return strings.HasPrefix(str, "git://") || strings.HasPrefix(str, "github.com/") || strings.HasPrefix(str, "git@github.com:") || (strings.HasSuffix(str, ".git") && IsURL(str)) return strings.HasPrefix(str, "git://") || strings.HasPrefix(str, "github.com/") || strings.HasPrefix(str, "git@") || (strings.HasSuffix(str, ".git") && IsURL(str))
} }
func ValidGitTransport(str string) bool { func ValidGitTransport(str string) bool {

View file

@ -98,23 +98,42 @@ func TestReadSymlinkedDirectoryToFile(t *testing.T) {
} }
} }
func TestValidGitTransport(t *testing.T) { var (
for _, url := range []string{ gitUrls = []string{
"git://github.com/docker/docker", "git://github.com/docker/docker",
"git@github.com:docker/docker.git", "git@github.com:docker/docker.git",
"git@bitbucket.org:atlassianlabs/atlassian-docker.git",
"https://github.com/docker/docker.git", "https://github.com/docker/docker.git",
"http://github.com/docker/docker.git", "http://github.com/docker/docker.git",
} { }
incompleteGitUrls = []string{
"github.com/docker/docker",
}
)
func TestValidGitTransport(t *testing.T) {
for _, url := range gitUrls {
if ValidGitTransport(url) == false { if ValidGitTransport(url) == false {
t.Fatalf("%q should be detected as valid Git prefix", url) t.Fatalf("%q should be detected as valid Git prefix", url)
} }
} }
for _, url := range []string{ for _, url := range incompleteGitUrls {
"github.com/docker/docker",
} {
if ValidGitTransport(url) == true { if ValidGitTransport(url) == true {
t.Fatalf("%q should not be detected as valid Git prefix", url) t.Fatalf("%q should not be detected as valid Git prefix", url)
} }
} }
} }
func TestIsGIT(t *testing.T) {
for _, url := range gitUrls {
if IsGIT(url) == false {
t.Fatalf("%q should be detected as valid Git url", url)
}
}
for _, url := range incompleteGitUrls {
if IsGIT(url) == false {
t.Fatalf("%q should be detected as valid Git url", url)
}
}
}