From c12d1d0f3c20b516b08fd3fa1f4499d749588b41 Mon Sep 17 00:00:00 2001 From: Jan Rose Date: Mon, 13 Jul 2026 11:09:22 +0200 Subject: [PATCH 1/6] Report an actionable error for unsupported bundle init template URLs `databricks bundle init http://...` previously fell through to the local-path reader and failed with a confusing "not a bundle template" error. Recognize the deprecated/insecure transports (http, git, ftp[s]) as Git URLs but mark them invalid, so ResolveReader returns a clear error naming the supported protocols instead. Co-authored-by: Isaac --- NEXT_CHANGELOG.md | 1 + .../unsupported-url/out.test.toml | 3 + .../unsupported-url/output.txt | 3 + .../unsupported-url/script | 2 + cmd/bundle/debug/render_template_schema.go | 5 +- libs/template/resolver.go | 61 +++++++++++++------ libs/template/resolver_test.go | 14 ++++- 7 files changed, 68 insertions(+), 21 deletions(-) create mode 100644 acceptance/bundle/templates-machinery/unsupported-url/out.test.toml create mode 100644 acceptance/bundle/templates-machinery/unsupported-url/output.txt create mode 100644 acceptance/bundle/templates-machinery/unsupported-url/script diff --git a/NEXT_CHANGELOG.md b/NEXT_CHANGELOG.md index f2b99b3591d..779966584cf 100644 --- a/NEXT_CHANGELOG.md +++ b/NEXT_CHANGELOG.md @@ -7,6 +7,7 @@ ### CLI * experimental `ssh connect`: bare `python`/`pip` in an interactive session now resolve to the environment interpreter (`$DATABRICKS_VIRTUAL_ENV`) instead of the system or cluster-libraries interpreter, so packages installed in the environment are importable without extra setup. The interactive shell is now non-login (`bash -i`) and the server seeds a `~/.bashrc` snippet that re-prepends the environment's bin directory to `PATH` ([#5888](https://github.com/databricks/cli/pull/5888)). +* `databricks bundle init` now reports an actionable error when given a template URL with an unsupported protocol (`http://`, `git://`, `ftp://`, `ftps://`) instead of failing with a confusing "not a bundle template" message. ### Bundles diff --git a/acceptance/bundle/templates-machinery/unsupported-url/out.test.toml b/acceptance/bundle/templates-machinery/unsupported-url/out.test.toml new file mode 100644 index 00000000000..f784a183258 --- /dev/null +++ b/acceptance/bundle/templates-machinery/unsupported-url/out.test.toml @@ -0,0 +1,3 @@ +Local = true +Cloud = false +EnvMatrix.DATABRICKS_BUNDLE_ENGINE = ["terraform", "direct"] diff --git a/acceptance/bundle/templates-machinery/unsupported-url/output.txt b/acceptance/bundle/templates-machinery/unsupported-url/output.txt new file mode 100644 index 00000000000..2fc05c4765c --- /dev/null +++ b/acceptance/bundle/templates-machinery/unsupported-url/output.txt @@ -0,0 +1,3 @@ +Error: unsupported protocol in Git URL "http://github.com/databricks/cli": only https://, ssh://, and git@ URLs are supported + +Exit code: 1 diff --git a/acceptance/bundle/templates-machinery/unsupported-url/script b/acceptance/bundle/templates-machinery/unsupported-url/script new file mode 100644 index 00000000000..4edad2e8e31 --- /dev/null +++ b/acceptance/bundle/templates-machinery/unsupported-url/script @@ -0,0 +1,2 @@ +export NO_COLOR=1 +errcode $CLI bundle init http://github.com/databricks/cli diff --git a/cmd/bundle/debug/render_template_schema.go b/cmd/bundle/debug/render_template_schema.go index 475f73054ac..30743be6f1a 100644 --- a/cmd/bundle/debug/render_template_schema.go +++ b/cmd/bundle/debug/render_template_schema.go @@ -44,7 +44,10 @@ func NewRenderTemplateSchemaCommand() *cobra.Command { } // Resolve the template reader - reader, isGitReader := template.ResolveReader(templatePathOrUrl, templateDir, ref) + reader, isGitReader, err := template.ResolveReader(templatePathOrUrl, templateDir, ref) + if err != nil { + return err + } defer reader.Cleanup(ctx) // For git reader, load schema first to initialize the temp directory diff --git a/libs/template/resolver.go b/libs/template/resolver.go index f7ca1f9c829..94276a9e1a6 100644 --- a/libs/template/resolver.go +++ b/libs/template/resolver.go @@ -3,40 +3,64 @@ package template import ( "context" "errors" + "fmt" "strings" "github.com/databricks/cli/libs/git" ) -// See https://git-scm.com/docs/git-clone#_git_urls for the set of supported -// Git URL forms. We deliberately exclude deprecated/insecure protocols (git, http, ftp[s]). -var gitUrlPrefixes = []string{ - "https://", - "ssh://", +type gitUrlPrefix struct { + prefix string + + // invalid marks a prefix that git recognizes as a URL but that we refuse to + // clone from, so we can report an actionable error instead of falling through + // to the local-path reader. + invalid bool +} + +// See https://git-scm.com/docs/git-clone#_git_urls for the set of Git URL forms. +// We deliberately reject the deprecated/insecure transports (git, http, ftp[s]). +var gitUrlPrefixes = []gitUrlPrefix{ + {prefix: "https://"}, + {prefix: "ssh://"}, // recognize git@ without ssh:// protocol because this is very common - "git@", + {prefix: "git@"}, + {prefix: "http://", invalid: true}, + {prefix: "git://", invalid: true}, + {prefix: "ftp://", invalid: true}, + {prefix: "ftps://", invalid: true}, } -func IsGitRepoUrl(url string) bool { - for _, prefix := range gitUrlPrefixes { - if strings.HasPrefix(url, prefix) { - return true +// matchGitUrlPrefix returns the matching prefix entry, or nil if the input does +// not look like a Git URL. +func matchGitUrlPrefix(url string) *gitUrlPrefix { + for i := range gitUrlPrefixes { + if strings.HasPrefix(url, gitUrlPrefixes[i].prefix) { + return &gitUrlPrefixes[i] } } - return false + return nil +} + +func IsGitRepoUrl(url string) bool { + p := matchGitUrlPrefix(url) + return p != nil && !p.invalid } // ResolveReader resolves a template path/URL to a Reader (built-in, git or local) -func ResolveReader(templatePathOrUrl, templateDir, ref string) (Reader, bool) { +func ResolveReader(templatePathOrUrl, templateDir, ref string) (Reader, bool, error) { if tmpl := GetDatabricksTemplate(TemplateName(templatePathOrUrl)); tmpl != nil { - return tmpl.Reader, false + return tmpl.Reader, false, nil } - if IsGitRepoUrl(templatePathOrUrl) { - return NewGitReader(templatePathOrUrl, ref, templateDir, git.Clone), true + if p := matchGitUrlPrefix(templatePathOrUrl); p != nil { + if p.invalid { + return nil, false, fmt.Errorf("unsupported protocol in Git URL %q: only https://, ssh://, and git@ URLs are supported", templatePathOrUrl) + } + return NewGitReader(templatePathOrUrl, ref, templateDir, git.Clone), true, nil } - return NewLocalReader(templatePathOrUrl), false + return NewLocalReader(templatePathOrUrl), false, nil } type Resolver struct { @@ -107,7 +131,10 @@ func (r Resolver) Resolve(ctx context.Context) (*Template, error) { // // We resolve the appropriate reader according to the reference provided by the user. if tmpl == nil { - reader, _ := ResolveReader(r.TemplatePathOrUrl, r.TemplateDir, ref) + reader, _, err := ResolveReader(r.TemplatePathOrUrl, r.TemplateDir, ref) + if err != nil { + return nil, err + } tmpl = &Template{ name: Custom, Reader: reader, diff --git a/libs/template/resolver_test.go b/libs/template/resolver_test.go index 12de32ab963..4de531c6719 100644 --- a/libs/template/resolver_test.go +++ b/libs/template/resolver_test.go @@ -120,13 +120,15 @@ func TestBundleInitIsGitRepoUrl(t *testing.T) { func TestResolveReader(t *testing.T) { t.Run("builtin template", func(t *testing.T) { - reader, isGit := ResolveReader("default-python", "", "") + reader, isGit, err := ResolveReader("default-python", "", "") + require.NoError(t, err) assert.False(t, isGit) assert.Equal(t, &builtinReader{name: "default-python"}, reader) }) t.Run("git URL", func(t *testing.T) { - reader, isGit := ResolveReader("https://github.com/example/repo", "/template", "v1.0") + reader, isGit, err := ResolveReader("https://github.com/example/repo", "/template", "v1.0") + require.NoError(t, err) assert.True(t, isGit) gitReader := reader.(*gitReader) assert.Equal(t, "https://github.com/example/repo", gitReader.gitUrl) @@ -134,8 +136,14 @@ func TestResolveReader(t *testing.T) { assert.Equal(t, "v1.0", gitReader.ref) }) + t.Run("unsupported protocol", func(t *testing.T) { + _, _, err := ResolveReader("http://github.com/example/repo", "", "") + assert.ErrorContains(t, err, "unsupported protocol") + }) + t.Run("local path", func(t *testing.T) { - reader, isGit := ResolveReader("/local/path", "", "") + reader, isGit, err := ResolveReader("/local/path", "", "") + require.NoError(t, err) assert.False(t, isGit) assert.Equal(t, "/local/path", reader.(*localReader).path) }) From 59cd6d553f7b1802545a4a5bd7ae6a99fb1f145e Mon Sep 17 00:00:00 2001 From: Jan Rose Date: Mon, 13 Jul 2026 11:14:23 +0200 Subject: [PATCH 2/6] changelog: use .nextchanges/ fragment instead of NEXT_CHANGELOG.md Co-authored-by: Isaac --- .nextchanges/bundles/bundle-init-unsupported-protocol.md | 1 + NEXT_CHANGELOG.md | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 .nextchanges/bundles/bundle-init-unsupported-protocol.md diff --git a/.nextchanges/bundles/bundle-init-unsupported-protocol.md b/.nextchanges/bundles/bundle-init-unsupported-protocol.md new file mode 100644 index 00000000000..557acf0eee7 --- /dev/null +++ b/.nextchanges/bundles/bundle-init-unsupported-protocol.md @@ -0,0 +1 @@ +`databricks bundle init` now reports an actionable error when given a template URL with an unsupported protocol (`http://`, `git://`, `ftp://`, `ftps://`) instead of failing with a confusing "not a bundle template" message ([#5902](https://github.com/databricks/cli/pull/5902)). diff --git a/NEXT_CHANGELOG.md b/NEXT_CHANGELOG.md index 779966584cf..f2b99b3591d 100644 --- a/NEXT_CHANGELOG.md +++ b/NEXT_CHANGELOG.md @@ -7,7 +7,6 @@ ### CLI * experimental `ssh connect`: bare `python`/`pip` in an interactive session now resolve to the environment interpreter (`$DATABRICKS_VIRTUAL_ENV`) instead of the system or cluster-libraries interpreter, so packages installed in the environment are importable without extra setup. The interactive shell is now non-login (`bash -i`) and the server seeds a `~/.bashrc` snippet that re-prepends the environment's bin directory to `PATH` ([#5888](https://github.com/databricks/cli/pull/5888)). -* `databricks bundle init` now reports an actionable error when given a template URL with an unsupported protocol (`http://`, `git://`, `ftp://`, `ftps://`) instead of failing with a confusing "not a bundle template" message. ### Bundles From 520472a3e51170b70d3e87cac93dc1c987b9fc92 Mon Sep 17 00:00:00 2001 From: Jan Rose Date: Mon, 13 Jul 2026 11:17:39 +0200 Subject: [PATCH 3/6] Derive supported protocols from gitUrlPrefixes and broaden test coverage - Build the "supported protocols" list in the error message from gitUrlPrefixes so it stays in sync with the recognized prefixes. - Use musterr in the acceptance test and cover every rejected protocol (http, git, ftp, ftps). - Make TestResolveReader table-driven over the supported (https, ssh, git@) and unsupported URL forms. Co-authored-by: Isaac --- .../unsupported-url/output.txt | 13 ++++++- .../unsupported-url/script | 6 ++- libs/template/resolver.go | 13 ++++++- libs/template/resolver_test.go | 39 ++++++++++++------- 4 files changed, 54 insertions(+), 17 deletions(-) diff --git a/acceptance/bundle/templates-machinery/unsupported-url/output.txt b/acceptance/bundle/templates-machinery/unsupported-url/output.txt index 2fc05c4765c..53b7362a7db 100644 --- a/acceptance/bundle/templates-machinery/unsupported-url/output.txt +++ b/acceptance/bundle/templates-machinery/unsupported-url/output.txt @@ -1,3 +1,12 @@ -Error: unsupported protocol in Git URL "http://github.com/databricks/cli": only https://, ssh://, and git@ URLs are supported -Exit code: 1 +>>> musterr [CLI] bundle init http://github.com/databricks/cli +Error: unsupported protocol in Git URL "http://github.com/databricks/cli": only https://, ssh://, git@ URLs are supported + +>>> musterr [CLI] bundle init git://github.com/databricks/cli +Error: unsupported protocol in Git URL "git://github.com/databricks/cli": only https://, ssh://, git@ URLs are supported + +>>> musterr [CLI] bundle init ftp://github.com/databricks/cli +Error: unsupported protocol in Git URL "ftp://github.com/databricks/cli": only https://, ssh://, git@ URLs are supported + +>>> musterr [CLI] bundle init ftps://github.com/databricks/cli +Error: unsupported protocol in Git URL "ftps://github.com/databricks/cli": only https://, ssh://, git@ URLs are supported diff --git a/acceptance/bundle/templates-machinery/unsupported-url/script b/acceptance/bundle/templates-machinery/unsupported-url/script index 4edad2e8e31..a6def50037f 100644 --- a/acceptance/bundle/templates-machinery/unsupported-url/script +++ b/acceptance/bundle/templates-machinery/unsupported-url/script @@ -1,2 +1,6 @@ export NO_COLOR=1 -errcode $CLI bundle init http://github.com/databricks/cli + +trace musterr $CLI bundle init http://github.com/databricks/cli +trace musterr $CLI bundle init git://github.com/databricks/cli +trace musterr $CLI bundle init ftp://github.com/databricks/cli +trace musterr $CLI bundle init ftps://github.com/databricks/cli diff --git a/libs/template/resolver.go b/libs/template/resolver.go index 94276a9e1a6..0a59a4c47c0 100644 --- a/libs/template/resolver.go +++ b/libs/template/resolver.go @@ -55,7 +55,7 @@ func ResolveReader(templatePathOrUrl, templateDir, ref string) (Reader, bool, er if p := matchGitUrlPrefix(templatePathOrUrl); p != nil { if p.invalid { - return nil, false, fmt.Errorf("unsupported protocol in Git URL %q: only https://, ssh://, and git@ URLs are supported", templatePathOrUrl) + return nil, false, fmt.Errorf("unsupported protocol in Git URL %q: only %s URLs are supported", templatePathOrUrl, strings.Join(supportedGitUrlPrefixes(), ", ")) } return NewGitReader(templatePathOrUrl, ref, templateDir, git.Clone), true, nil } @@ -63,6 +63,17 @@ func ResolveReader(templatePathOrUrl, templateDir, ref string) (Reader, bool, er return NewLocalReader(templatePathOrUrl), false, nil } +// supportedGitUrlPrefixes returns the valid (non-rejected) Git URL prefixes. +func supportedGitUrlPrefixes() []string { + var prefixes []string + for i := range gitUrlPrefixes { + if !gitUrlPrefixes[i].invalid { + prefixes = append(prefixes, gitUrlPrefixes[i].prefix) + } + } + return prefixes +} + type Resolver struct { // One of the following three: // 1. Path to a local template directory. diff --git a/libs/template/resolver_test.go b/libs/template/resolver_test.go index 4de531c6719..b70e8494b9a 100644 --- a/libs/template/resolver_test.go +++ b/libs/template/resolver_test.go @@ -126,20 +126,33 @@ func TestResolveReader(t *testing.T) { assert.Equal(t, &builtinReader{name: "default-python"}, reader) }) - t.Run("git URL", func(t *testing.T) { - reader, isGit, err := ResolveReader("https://github.com/example/repo", "/template", "v1.0") - require.NoError(t, err) - assert.True(t, isGit) - gitReader := reader.(*gitReader) - assert.Equal(t, "https://github.com/example/repo", gitReader.gitUrl) - assert.Equal(t, "/template", gitReader.templateDir) - assert.Equal(t, "v1.0", gitReader.ref) - }) + for _, url := range []string{ + "https://github.com/example/repo", + "ssh://git@github.com/example/repo", + "git@github.com:example/repo", + } { + t.Run("git URL "+url, func(t *testing.T) { + reader, isGit, err := ResolveReader(url, "/template", "v1.0") + require.NoError(t, err) + assert.True(t, isGit) + gitReader := reader.(*gitReader) + assert.Equal(t, url, gitReader.gitUrl) + assert.Equal(t, "/template", gitReader.templateDir) + assert.Equal(t, "v1.0", gitReader.ref) + }) + } - t.Run("unsupported protocol", func(t *testing.T) { - _, _, err := ResolveReader("http://github.com/example/repo", "", "") - assert.ErrorContains(t, err, "unsupported protocol") - }) + for _, url := range []string{ + "http://github.com/example/repo", + "git://github.com/example/repo", + "ftp://github.com/example/repo", + "ftps://github.com/example/repo", + } { + t.Run("unsupported protocol "+url, func(t *testing.T) { + _, _, err := ResolveReader(url, "", "") + assert.ErrorContains(t, err, "unsupported protocol") + }) + } t.Run("local path", func(t *testing.T) { reader, isGit, err := ResolveReader("/local/path", "", "") From 7768a1c9170f3ce41c926bedba5aa10d41c7cad9 Mon Sep 17 00:00:00 2001 From: Jan Rose Date: Mon, 13 Jul 2026 11:25:22 +0200 Subject: [PATCH 4/6] Add happy-path acceptance test for ssh:// and git@ template URLs Asserts that ssh:// and git@ URLs are recognized as Git URLs and a clone is attempted, rather than being misread as local template paths. Uses a non-resolving .invalid host so the clone fails fast without network access, routes the platform-dependent git error to LOG, and asserts the invariant with contains.py. Co-authored-by: Isaac --- .../supported-url/out.test.toml | 3 +++ .../templates-machinery/supported-url/output.txt | 3 +++ .../templates-machinery/supported-url/script | 15 +++++++++++++++ 3 files changed, 21 insertions(+) create mode 100644 acceptance/bundle/templates-machinery/supported-url/out.test.toml create mode 100644 acceptance/bundle/templates-machinery/supported-url/output.txt create mode 100644 acceptance/bundle/templates-machinery/supported-url/script diff --git a/acceptance/bundle/templates-machinery/supported-url/out.test.toml b/acceptance/bundle/templates-machinery/supported-url/out.test.toml new file mode 100644 index 00000000000..f784a183258 --- /dev/null +++ b/acceptance/bundle/templates-machinery/supported-url/out.test.toml @@ -0,0 +1,3 @@ +Local = true +Cloud = false +EnvMatrix.DATABRICKS_BUNDLE_ENGINE = ["terraform", "direct"] diff --git a/acceptance/bundle/templates-machinery/supported-url/output.txt b/acceptance/bundle/templates-machinery/supported-url/output.txt new file mode 100644 index 00000000000..bd84026e4f0 --- /dev/null +++ b/acceptance/bundle/templates-machinery/supported-url/output.txt @@ -0,0 +1,3 @@ + +=== ssh:// URL is recognized as a Git URL +=== git@ URL is recognized as a Git URL \ No newline at end of file diff --git a/acceptance/bundle/templates-machinery/supported-url/script b/acceptance/bundle/templates-machinery/supported-url/script new file mode 100644 index 00000000000..9d0903779d2 --- /dev/null +++ b/acceptance/bundle/templates-machinery/supported-url/script @@ -0,0 +1,15 @@ +export NO_COLOR=1 + +# These hosts do not resolve (.invalid is reserved by RFC 6761), so the clone +# fails fast without network access. The point of the test is that ssh:// and +# git@ URLs are recognized as Git URLs and a clone is attempted, rather than +# being misread as local template paths (which would report a "not a bundle +# template" error instead). The git error text varies by platform, so we route +# it to LOG (excluded from the diff) and assert the invariant with contains.py. +title "ssh:// URL is recognized as a Git URL" +errcode $CLI bundle init ssh://git@nonexistent.databricks.invalid/databricks/cli &> LOG.ssh +contains.py "git clone ssh://git@nonexistent.databricks.invalid/databricks/cli" "!not a bundle template" < LOG.ssh > /dev/null + +title "git@ URL is recognized as a Git URL" +errcode $CLI bundle init git@nonexistent.databricks.invalid:databricks/cli.git &> LOG.git +contains.py "git clone git@nonexistent.databricks.invalid:databricks/cli.git" "!not a bundle template" < LOG.git > /dev/null From 25e9ff1003ae79f3798bc869e099c899b955ba80 Mon Sep 17 00:00:00 2001 From: Jan Rose Date: Mon, 13 Jul 2026 11:28:24 +0200 Subject: [PATCH 5/6] Cover https:// in the supported-url acceptance test Co-authored-by: Isaac --- .../templates-machinery/supported-url/output.txt | 1 + .../templates-machinery/supported-url/script | 14 +++++++++----- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/acceptance/bundle/templates-machinery/supported-url/output.txt b/acceptance/bundle/templates-machinery/supported-url/output.txt index bd84026e4f0..959b4c6fb82 100644 --- a/acceptance/bundle/templates-machinery/supported-url/output.txt +++ b/acceptance/bundle/templates-machinery/supported-url/output.txt @@ -1,3 +1,4 @@ +=== https:// URL is recognized as a Git URL === ssh:// URL is recognized as a Git URL === git@ URL is recognized as a Git URL \ No newline at end of file diff --git a/acceptance/bundle/templates-machinery/supported-url/script b/acceptance/bundle/templates-machinery/supported-url/script index 9d0903779d2..03a6037ff24 100644 --- a/acceptance/bundle/templates-machinery/supported-url/script +++ b/acceptance/bundle/templates-machinery/supported-url/script @@ -1,11 +1,15 @@ export NO_COLOR=1 # These hosts do not resolve (.invalid is reserved by RFC 6761), so the clone -# fails fast without network access. The point of the test is that ssh:// and -# git@ URLs are recognized as Git URLs and a clone is attempted, rather than -# being misread as local template paths (which would report a "not a bundle -# template" error instead). The git error text varies by platform, so we route -# it to LOG (excluded from the diff) and assert the invariant with contains.py. +# fails fast without network access. The point of the test is that these URLs +# are recognized as Git URLs and a clone is attempted, rather than being misread +# as local template paths (which would report a "not a bundle template" error +# instead). The git error text varies by platform, so we route it to LOG +# (excluded from the diff) and assert the invariant with contains.py. +title "https:// URL is recognized as a Git URL" +errcode $CLI bundle init https://nonexistent.databricks.invalid/databricks/cli &> LOG.https +contains.py "git clone https://nonexistent.databricks.invalid/databricks/cli" "!not a bundle template" < LOG.https > /dev/null + title "ssh:// URL is recognized as a Git URL" errcode $CLI bundle init ssh://git@nonexistent.databricks.invalid/databricks/cli &> LOG.ssh contains.py "git clone ssh://git@nonexistent.databricks.invalid/databricks/cli" "!not a bundle template" < LOG.ssh > /dev/null From 666497a82bd33f60feec1b6be4f621ade549c8c6 Mon Sep 17 00:00:00 2001 From: Jan Rose Date: Mon, 13 Jul 2026 11:31:40 +0200 Subject: [PATCH 6/6] Drop redundant NO_COLOR from the new template-URL tests The acceptance harness captures output through pipes (not a TTY), so the CLI already suppresses color; NO_COLOR was a no-op copied from sibling tests. Co-authored-by: Isaac --- acceptance/bundle/templates-machinery/supported-url/script | 2 -- acceptance/bundle/templates-machinery/unsupported-url/script | 2 -- 2 files changed, 4 deletions(-) diff --git a/acceptance/bundle/templates-machinery/supported-url/script b/acceptance/bundle/templates-machinery/supported-url/script index 03a6037ff24..e1465d61516 100644 --- a/acceptance/bundle/templates-machinery/supported-url/script +++ b/acceptance/bundle/templates-machinery/supported-url/script @@ -1,5 +1,3 @@ -export NO_COLOR=1 - # These hosts do not resolve (.invalid is reserved by RFC 6761), so the clone # fails fast without network access. The point of the test is that these URLs # are recognized as Git URLs and a clone is attempted, rather than being misread diff --git a/acceptance/bundle/templates-machinery/unsupported-url/script b/acceptance/bundle/templates-machinery/unsupported-url/script index a6def50037f..ccb5a3d9c11 100644 --- a/acceptance/bundle/templates-machinery/unsupported-url/script +++ b/acceptance/bundle/templates-machinery/unsupported-url/script @@ -1,5 +1,3 @@ -export NO_COLOR=1 - trace musterr $CLI bundle init http://github.com/databricks/cli trace musterr $CLI bundle init git://github.com/databricks/cli trace musterr $CLI bundle init ftp://github.com/databricks/cli