resolve the default remote branch dynamically
Rather than hardcode or fall over between branches, look up the
default the remote repo is using, and go with that locally too.
BUG=chromium:1126855, b:173131586
TEST=`./run_tests.sh` passes
Change-Id: I2b6b4aeb6ea404e68d32673c807187c8061d9f16
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/infra/go/+/2693059
Reviewed-by: Julio Hurtado <juahurta@google.com>
Commit-Queue: Mike Frysinger <vapier@chromium.org>
Tested-by: Mike Frysinger <vapier@chromium.org>
diff --git a/internal/git/git_test.go b/internal/git/git_test.go
index c87c53b..36ff9a4 100644
--- a/internal/git/git_test.go
+++ b/internal/git/git_test.go
@@ -481,3 +481,16 @@
assert.NilError(t, err)
assert.Assert(t, !ok)
}
+
+func TestResolveRemoteSymbolicRef(t *testing.T) {
+ remote := "remote"
+
+ CommandRunnerImpl = cmd.FakeCommandRunner{
+ ExpectedDir: "foo",
+ ExpectedCmd: []string{"git", "ls-remote", "-q", "--symref", "--exit-code", remote, "HEAD"},
+ Stdout: "ref: refs/heads/main\tHEAD\n5f6803b100bb3cd0f534e96e88c91373e8ed1c44\tHEAD\n",
+ }
+ ref, err := ResolveRemoteSymbolicRef("foo", remote, "HEAD")
+ assert.NilError(t, err)
+ assert.Equal(t, ref, "refs/heads/main")
+}