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:
parent
748fe7a0fa
commit
c7e4cc4a53
3 changed files with 27 additions and 8 deletions
|
@ -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
|
||||||
|
|
|
@ -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 {
|
||||||
|
|
|
@ -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)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue