Add support for cloning repositories#544
Conversation
|
This PR is a replacement for #534 |
|
Please leave any feedback you have, if this looks good, then I'll proceed to add some unit tests for the arg parsing and command construction |
libs/git/clone_test.go
Outdated
| // case: invalid repository references | ||
| assert.Equal(t, "https://github.com/databricks/", expandUrl("")) | ||
| assert.Equal(t, "https://github.com//", expandUrl("/")) | ||
| assert.Equal(t, "https://github.com//abc/def", expandUrl("/abc/def")) |
There was a problem hiding this comment.
These should return errors.
There was a problem hiding this comment.
removed the expand url function
There was a problem hiding this comment.
It's complex to have a simple and robust way to parse these URLs, across different protocols, git providers and operating systems. I decided to just support the repository name and the full URL to keep it simpler, with a simple rubrik, that ^[\w-\.]+$ without any / will be resolved against databricks
There was a problem hiding this comment.
Note ^[\w-\.]+/[\w-\.]+$ is likely a valid regex that can be used as a capturing org name and repository name, but that can be added in as a followup
| return args | ||
| } | ||
|
|
||
| func Clone(ctx context.Context, url, reference, targetPath string) error { |
There was a problem hiding this comment.
The argument suggests reference but the function above and test suggest it can only be a branch.
Which one applies?
There was a problem hiding this comment.
The git clone --branch flag can take in both tags and branches.
Breaking Change: * Require include glob patterns to be explicitly defined ([#602](#602)). Bundles: * Add support for more SDK config options ([#587](#587)). * Add template renderer for Databricks templates ([#589](#589)). * Fix formatting in renderer.go ([#593](#593)). * Fixed python wheel test ([#608](#608)). * Auto detect Python wheel packages and infer build command ([#603](#603)). * Added support for artifacts building for bundles ([#583](#583)). * Add support for cloning repositories ([#544](#544)). * Add regexp compile helper function for templates ([#601](#601)). * Add unit test that raw strings are printed as is ([#599](#599)). Internal: * Fix tests under ./cmd/configure if DATABRICKS_TOKEN is set ([#605](#605)). * Remove dependency on global state in generated commands ([#595](#595)). * Remove dependency on global state for the root command ([#606](#606)). * Add merge_group trigger for build ([#612](#612)). * Added support for build command chaining and error on missing wheel ([#607](#607)). * Add TestAcc prefix to filer test and fix any failing tests ([#611](#611)). * Add url parse helper function for templates ([#600](#600)). * Remove dependency on global state for remaining commands ([#613](#613)). * Update CHANGELOG template ([#588](#588)).
Changes
Adds support for cloning public and private github repositories for databricks templates
Tests
Integration tests