|
4 | 4 | from funcy import compact, group_by |
5 | 5 | from scmrepo.git.backend.base import SyncStatus |
6 | 6 |
|
| 7 | +from dvc.env import DVC_STUDIO_TOKEN, DVC_STUDIO_URL |
7 | 8 | from dvc.exceptions import DvcException |
8 | 9 | from dvc.log import logger |
9 | 10 | from dvc.repo import locked |
@@ -31,26 +32,28 @@ def __init__(self, msg, result): |
31 | 32 | def notify_refs_to_studio( |
32 | 33 | repo: "Repo", git_remote: str, **refs: list[str] |
33 | 34 | ) -> Optional[str]: |
34 | | - from dvc_studio_client.config import get_studio_config |
35 | | - |
36 | | - from dvc.utils import studio |
| 35 | + import os |
37 | 36 |
|
| 37 | + config = repo.config["studio"] |
38 | 38 | refs = compact(refs) |
39 | 39 | if not refs or env2bool("DVC_TEST"): |
40 | 40 | return None |
41 | 41 |
|
42 | | - config = repo.config["studio"] |
43 | | - config = get_studio_config(dvc_studio_config=config) |
44 | | - token = config.get("token") |
45 | | - studio_url = config.get("url") |
| 42 | + token = ( |
| 43 | + os.environ.get(DVC_STUDIO_TOKEN) |
| 44 | + or os.environ.get("STUDIO_TOKEN") |
| 45 | + or config.get("token") |
| 46 | + ) |
46 | 47 | if not token: |
47 | 48 | logger.debug("Studio token not found.") |
48 | 49 | return None |
49 | | - repo_url = studio.get_repo_url(repo, git_remote) |
50 | | - if not repo_url: |
51 | | - logger.debug("Git remote repo URL not found.") |
52 | | - return None |
53 | 50 |
|
| 51 | + from dulwich.porcelain import get_remote_repo |
| 52 | + |
| 53 | + from dvc.utils import studio |
| 54 | + |
| 55 | + _, repo_url = get_remote_repo(repo.scm.dulwich.repo, git_remote) |
| 56 | + studio_url = os.environ.get(DVC_STUDIO_URL) or config.get("url") |
54 | 57 | d = studio.notify_refs(repo_url, token, base_url=studio_url, **refs) |
55 | 58 | return d.get("url") |
56 | 59 |
|
|
0 commit comments