-
Notifications
You must be signed in to change notification settings - Fork 1.2k
exp push/pull/list: support git credential storage #6586
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
Comments
Adding this to the backlog as follow-up to the workaround in #7674 from #7674 (comment):
Adding support for this requires implementing the git credentials storage protocol in dulwich and/or libgit. On the dulwich side, essentially this just means:
We also probably only need read-only support for now (i.e. likely only need to implement the |
Released with |
Extracted from #6493.
dvc exp push/pull/list
do not work today if credentials are required to be provided, such asdvc exp push
to a public Github HTTP URL ordvc exp push/pull/list
for a private Github HTTP URL.Also, even if using git credential stores, in which case users don't need to manually enter credentials when performing git operations, DVC doesn't currently read these credentials and still complains that the URL is unauthenticated. Note that dulwich seems to have support for this: https://github.com/dulwich/dulwich/blob/cdc93e058fb28e4884f8d6a23b4d79b14d2a8098/dulwich/client.py#L2222.
As discussed in the linked PR, it would be helpful to read from the credential store and ask for the username and password if the
HTTPClientUnauthorized
exception is thrown. It would also be helpful to memoize to avoid having to repeatedly ask for credentials in the case of auto-pushing checkpoints. This might be generally useful because obtaining a new git client for each checkpoint seems wasteful regardless.The text was updated successfully, but these errors were encountered: