From 088f61b1f464af0bbd5abeb83659b23d277b2607 Mon Sep 17 00:00:00 2001 From: Raphael Fakhri <153192858+RaphaelFakhri@users.noreply.github.com> Date: Tue, 29 Sep 2026 11:51:05 +0000 Subject: [PATCH 1/2] fix(git): format the base branch lookup warning correctly --- py/src/braintrust/gitutil.py | 2 +- py/src/braintrust/test_gitutil.py | 25 +++++++++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/py/src/braintrust/gitutil.py b/py/src/braintrust/gitutil.py index 69887b6be..329618829 100644 --- a/py/src/braintrust/gitutil.py +++ b/py/src/braintrust/gitutil.py @@ -101,7 +101,7 @@ def _get_base_branch(remote=None): raise RuntimeError("Could not find HEAD branch in remote " + remote) branch = match.group(1) except Exception as e: - _logger.warning(f"Could not find base branch for remote {remote}", e) + _logger.warning(f"Could not find base branch for remote {remote}: {e}") branch = "main" return (remote, branch) diff --git a/py/src/braintrust/test_gitutil.py b/py/src/braintrust/test_gitutil.py index 2cb0eee10..652921dd2 100644 --- a/py/src/braintrust/test_gitutil.py +++ b/py/src/braintrust/test_gitutil.py @@ -63,3 +63,28 @@ def test_repo_info_returns_none_when_git_cannot_be_resolved(monkeypatch: pytest. assert gitutil._current_repo() is None assert gitutil.repo_info() is None assert list(gitutil.get_past_n_ancestors()) == [] + + +def test_get_base_branch_warning_is_formattable_when_remote_lookup_fails( + monkeypatch: pytest.MonkeyPatch, caplog: pytest.LogCaptureFixture +): + """A failing `git remote show` must log a warning that formats cleanly and fall back to main.""" + + def fake_git_output(args, cwd=None): + if args == ["remote"]: + return "origin" + if args[0] == "for-each-ref": + return "trunk" + raise subprocess.CalledProcessError(128, ["git", *args]) + + monkeypatch.setattr(gitutil, "_current_repo", lambda: "/repo") + monkeypatch.setattr(gitutil, "_git_output", fake_git_output) + gitutil._get_base_branch.cache_clear() + try: + with caplog.at_level("WARNING", logger="braintrust.gitutil"): + assert gitutil._get_base_branch() == ("origin", "main") + finally: + gitutil._get_base_branch.cache_clear() + + messages = [record.getMessage() for record in caplog.records] + assert any("Could not find base branch for remote origin" in m for m in messages) From 9ce3a9f356f1537c7bc18fd538fac445dd6148db Mon Sep 17 00:00:00 2001 From: Abhijeet Prasad Date: Tue, 29 Sep 2026 14:00:12 +0000 Subject: [PATCH 2/2] test(git): remove base branch warning test Co-Authored-By: Claude Opus 5.5 --- py/src/braintrust/test_gitutil.py | 25 ------------------------- 1 file changed, 25 deletions(-) diff --git a/py/src/braintrust/test_gitutil.py b/py/src/braintrust/test_gitutil.py index 652921dd2..2cb0eee10 100644 --- a/py/src/braintrust/test_gitutil.py +++ b/py/src/braintrust/test_gitutil.py @@ -63,28 +63,3 @@ def test_repo_info_returns_none_when_git_cannot_be_resolved(monkeypatch: pytest. assert gitutil._current_repo() is None assert gitutil.repo_info() is None assert list(gitutil.get_past_n_ancestors()) == [] - - -def test_get_base_branch_warning_is_formattable_when_remote_lookup_fails( - monkeypatch: pytest.MonkeyPatch, caplog: pytest.LogCaptureFixture -): - """A failing `git remote show` must log a warning that formats cleanly and fall back to main.""" - - def fake_git_output(args, cwd=None): - if args == ["remote"]: - return "origin" - if args[0] == "for-each-ref": - return "trunk" - raise subprocess.CalledProcessError(128, ["git", *args]) - - monkeypatch.setattr(gitutil, "_current_repo", lambda: "/repo") - monkeypatch.setattr(gitutil, "_git_output", fake_git_output) - gitutil._get_base_branch.cache_clear() - try: - with caplog.at_level("WARNING", logger="braintrust.gitutil"): - assert gitutil._get_base_branch() == ("origin", "main") - finally: - gitutil._get_base_branch.cache_clear() - - messages = [record.getMessage() for record in caplog.records] - assert any("Could not find base branch for remote origin" in m for m in messages)