Skip to content

exp push/pull/list: support git credential storage #6586

Closed
@dberenbaum

Description

@dberenbaum

Extracted from #6493.

dvc exp push/pull/list do not work today if credentials are required to be provided, such as dvc exp push to a public Github HTTP URL or dvc 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.

Metadata

Metadata

Assignees

Labels

A: experimentsRelated to dvc expgitRelated to git and git backendsp2-mediumMedium priority, should be done, but less important

Type

No type

Projects

Status

Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions