Encode branch name in go/gerrit.FullChangeId

Bug: skia:12296
Change-Id: Idfe3f63b806741f7df205b21bef44eb774aa240f
Reviewed-on: https://skia-review.googlesource.com/c/buildbot/+/435337
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Ravi Mistry <rmistry@google.com>
diff --git a/go/gerrit/gerrit.go b/go/gerrit/gerrit.go
index a527d0a..abd6436 100644
--- a/go/gerrit/gerrit.go
+++ b/go/gerrit/gerrit.go
@@ -1484,5 +1484,7 @@
 // change. See
 // https://gerrit-review.googlesource.com/Documentation/rest-api-changes.html#change-id
 func FullChangeId(ci *ChangeInfo) string {
-	return fmt.Sprintf("%s~%s~%s", ci.Project, ci.Branch, ci.ChangeId)
+	// 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)
 }