maintner/maintnerd/maintapi: add supported Go releases to subrepo trybots

This change computes the supported Go release branches,
and adds them to the GerritTryWorkItem for trybots that
run on subrepos.

This should help significantly with trybots catching regressions
in subrepos that affect older, but supported Go releases.

Fixes golang/go#17626

Change-Id: I4d88f6510c34d0c28266d44c341d5831a8514fce
Reviewed-on: https://go-review.googlesource.com/c/147198
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
diff --git a/maintner/maintnerd/maintapi/api.go b/maintner/maintnerd/maintapi/api.go
index a17b116..228deb3 100644
--- a/maintner/maintnerd/maintapi/api.go
+++ b/maintner/maintnerd/maintapi/api.go
@@ -172,6 +172,11 @@
 	res := new(apipb.GoFindTryWorkResponse)
 	goProj := s.c.Gerrit().Project("go.googlesource.com", "go")
 
+	supportedReleases, err := supportedGoReleases(goProj)
+	if err != nil {
+		return nil, err
+	}
+
 	for _, ci := range cis {
 		cl := s.c.Gerrit().Project("go.googlesource.com", ci.Project).CL(int32(ci.ChangeNumber))
 		if cl == nil {
@@ -184,13 +189,13 @@
 			work.Commit = ci.CurrentRevision
 		}
 		if work.Project != "go" {
-			// Trybot on a subrepo.
-			//
-			// TODO: for Issue 17626, we need to append
-			// master and the past two releases, but for
-			// now we'll just do master.
+			// Trybot on a subrepo. Append master and the supported releases.
 			work.GoBranch = append(work.GoBranch, "master")
 			work.GoCommit = append(work.GoCommit, goProj.Ref("refs/heads/master").String())
+			for _, r := range supportedReleases {
+				work.GoBranch = append(work.GoBranch, r.BranchName)
+				work.GoCommit = append(work.GoCommit, r.BranchCommit)
+			}
 		}
 		res.Waiting = append(res.Waiting, work)
 	}