From ef26b61025bac4c6bb1a0ef7eccc45f43f84c841 Mon Sep 17 00:00:00 2001 From: Jukka Kaartinen Date: Fri, 3 Apr 2020 12:54:47 +0300 Subject: pkg/vcs: Support ssh git repos Signed-off-by: Jukka Kaartinen --- pkg/vcs/vcs.go | 3 ++- pkg/vcs/vcs_test.go | 4 ++++ 2 files changed, 6 insertions(+), 1 deletion(-) (limited to 'pkg/vcs') diff --git a/pkg/vcs/vcs.go b/pkg/vcs/vcs.go index 647a00f42..aa38be27d 100644 --- a/pkg/vcs/vcs.go +++ b/pkg/vcs/vcs.go @@ -154,7 +154,7 @@ func Patch(dir string, patch []byte) error { // CheckRepoAddress does a best-effort approximate check of a git repo address. func CheckRepoAddress(repo string) bool { - return gitRepoRe.MatchString(repo) + return gitRepoRe.MatchString(repo) || gitSshRepoRe.MatchString(repo) } // CheckBranch does a best-effort approximate check of a git branch name. @@ -183,6 +183,7 @@ func runSandboxedEnv(dir, command string, env []string, args ...string) ([]byte, var ( // nolint: lll gitRepoRe = regexp.MustCompile(`^(git|ssh|http|https|ftp|ftps)://[a-zA-Z0-9-_]+(\.[a-zA-Z0-9-_]+)+(:[0-9]+)?(/[a-zA-Z0-9-_./]+)?(/)?$`) + gitSshRepoRe = regexp.MustCompile(`^(git|ssh|http|https|ftp|ftps)@[a-zA-Z0-9-_]+(\.[a-zA-Z0-9-_]+)+(:[a-zA-Z0-9-_]+)?(/[a-zA-Z0-9-_./]+)?(/)?$`) gitBranchRe = regexp.MustCompile("^[a-zA-Z0-9-_/.]{2,200}$") gitHashRe = regexp.MustCompile("^[a-f0-9]{8,40}$") releaseTagRe = regexp.MustCompile(`^v([0-9]+).([0-9]+)(?:\.([0-9]+))?$`) diff --git a/pkg/vcs/vcs_test.go b/pkg/vcs/vcs_test.go index b53f65a93..90df3c42e 100644 --- a/pkg/vcs/vcs_test.go +++ b/pkg/vcs/vcs_test.go @@ -33,6 +33,10 @@ func TestCheckRepoAddress(t *testing.T) { "http://host.xz:123/path/to/repo.git/": true, "https://chromium.googlesource.com/chromiumos/third_party/kernel": true, "https://fuchsia.googlesource.com": true, + "git@my-github.com:my/fd.git": true, + "git@my-github.com:/fd.git": false, + "gitgit@my-github:/fd.git": false, + "git@my-github/fd.git": false, "": false, "foobar": false, "linux-next": false, -- cgit mrf-deployment