diff --git a/otdf-sdk-mgr/src/otdf_sdk_mgr/resolve.py b/otdf-sdk-mgr/src/otdf_sdk_mgr/resolve.py index a3c6115bf..d35609b0d 100644 --- a/otdf-sdk-mgr/src/otdf_sdk_mgr/resolve.py +++ b/otdf-sdk-mgr/src/otdf_sdk_mgr/resolve.py @@ -155,7 +155,8 @@ def _annotate(result: ResolveResult) -> ResolveResult: try: repo = Git() - if version == "main" or version == "refs/heads/main": + version = version.removeprefix("refs/heads/") + if version == "main": all_heads = [r.split("\t") for r in repo.ls_remote(sdk_url, heads=True).split("\n")] try: sha, _ = next(tag for tag in all_heads if "refs/heads/main" in tag) diff --git a/otdf-sdk-mgr/tests/test_resolve.py b/otdf-sdk-mgr/tests/test_resolve.py index f100152f7..627478c11 100644 --- a/otdf-sdk-mgr/tests/test_resolve.py +++ b/otdf-sdk-mgr/tests/test_resolve.py @@ -67,6 +67,18 @@ def test_refs_heads_main_alias(self): assert is_resolve_success(result) assert result["tag"] == "main" + def test_refs_heads_non_main_branch(self): + ls = make_ls_remote( + (SHA40, "refs/heads/release/sdk-v0.17"), + (SHA40, "refs/heads/main"), + ) + with patch_git(ls): + result = resolve("js", "refs/heads/release/sdk-v0.17", None) + assert is_resolve_success(result) + assert "head" in result and result["head"] is True + assert result["tag"] == "release/sdk-v0.17" + assert result["sha"] == SHA40 + # --------------------------------------------------------------------------- # resolve() — SHA inputs