Remove refs/heads/ prefix from FullChangeId
Bug: skia:12288
Change-Id: Ie56a42210223409d974aa221c69c5a2c47e59bd8
Reviewed-on: https://skia-review.googlesource.com/c/buildbot/+/435618
Reviewed-by: Eric Boren <borenet@google.com>
diff --git a/go/gerrit/gerrit.go b/go/gerrit/gerrit.go
index abd6436..8ffd001 100644
--- a/go/gerrit/gerrit.go
+++ b/go/gerrit/gerrit.go
@@ -1484,7 +1484,10 @@
// change. See
// https://gerrit-review.googlesource.com/Documentation/rest-api-changes.html#change-id
func FullChangeId(ci *ChangeInfo) string {
+ branch := ci.Branch
+ // Do not include refs/heads/ when constructing the full change Id.
+ branch = strings.TrimPrefix(branch, "refs/heads/")
// Encode the branch to convert names like chrome/m90 into chrome%2Fm90.
- encodedBranch := url.QueryEscape(ci.Branch)
- return fmt.Sprintf("%s~%s~%s", ci.Project, encodedBranch, ci.ChangeId)
+ branch = url.QueryEscape(branch)
+ return fmt.Sprintf("%s~%s~%s", ci.Project, branch, ci.ChangeId)
}
diff --git a/go/gerrit/gerrit_test.go b/go/gerrit/gerrit_test.go
index 224051f..bb4ccc6 100644
--- a/go/gerrit/gerrit_test.go
+++ b/go/gerrit/gerrit_test.go
@@ -596,3 +596,22 @@
require.NoError(t, err)
require.Equal(t, expect, actual)
}
+
+func TestFullChangeId(t *testing.T) {
+ unittest.SmallTest(t)
+
+ ci := &ChangeInfo{
+ Project: "skia",
+ Branch: "main",
+ ChangeId: "abc",
+ }
+ require.Equal(t, "skia~main~abc", FullChangeId(ci))
+
+ // Test branch with "/" in the name.
+ ci.Branch = "chrome/m90"
+ require.Equal(t, "skia~chrome%2Fm90~abc", FullChangeId(ci))
+
+ // Test branch with "refs/heads/" prefix.
+ ci.Branch = "refs/heads/chrome/m90"
+ require.Equal(t, "skia~chrome%2Fm90~abc", FullChangeId(ci))
+}