-
Notifications
You must be signed in to change notification settings - Fork 42
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These should return errors.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
removed the expand url function
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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
(see: https://stackoverflow.com/questions/59081778/rules-for-special-characters-in-github-repository-name)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The git clone --branch
flag can take in both tags and branches.
source: https://git-scm.com/docs/git-clone#Documentation/git-clone.txt---branchltnamegt
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