[skcq] Use skia-internal bucket for internal repos

Bug: skia:12053
Change-Id: I74fdc7b1b62eccb0b8f3181d34fdc00e9fd8d75f
Reviewed-on: https://skia-review.googlesource.com/c/buildbot/+/430876
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Ravi Mistry <rmistry@google.com>
diff --git a/skcq/go/verifiers/tryjobs_verifier.go b/skcq/go/verifiers/tryjobs_verifier.go
index 6fffd93..2990965 100644
--- a/skcq/go/verifiers/tryjobs_verifier.go
+++ b/skcq/go/verifiers/tryjobs_verifier.go
@@ -28,7 +28,8 @@
 	// Time to wait before re-running old jobs for fresh results.
 	TryJobStaleTimeoutSecs = 24 * 60 * 60
 
-	BuildBucketDefaultSkiaProject = "skia"
+	BuildBucketDefaultSkiaProject  = "skia"
+	BuildBucketInternalSkiaProject = "skia-internal"
 
 	BuildBucketDefaultSkiaBucket  = "skia.primary"
 	BuildBucketInternalSkiaBucket = "skia.internal"
@@ -95,13 +96,17 @@
 	}
 
 	// Figure out which BB bucket should be used for this change.
+	var bbProject string
 	var bbBucket string
 	switch tv.visibilityType {
 	case config.InternalVisibility:
+		bbProject = BuildBucketInternalSkiaProject
 		bbBucket = BuildBucketInternalSkiaBucket
 	case config.StagingVisibility:
+		bbProject = BuildBucketDefaultSkiaProject
 		bbBucket = BuildBucketStagingSkiaBucket
 	default:
+		bbProject = BuildBucketDefaultSkiaProject
 		bbBucket = BuildBucketDefaultSkiaBucket
 	}
 
@@ -150,7 +155,7 @@
 	cqTryjobsToConfigs := tv.tasksCfg.CommitQueue
 
 	// Check, parse, and add the try jobs in IncludeTryjobsFooter if specified.
-	includeTryJobs, err := tv.getIncludeFooterTryJobs(ci.Issue, bbBucket)
+	includeTryJobs, err := tv.getIncludeFooterTryJobs(ci.Issue, bbProject, bbBucket)
 	if err != nil {
 		return types.VerifierFailureState, err.Error(), nil
 	}
@@ -293,7 +298,7 @@
 			}
 			botsToTags[t] = tags
 		}
-		respBuilds, err := tv.bb2.ScheduleBuilds(ctx, triggerTryJobs, botsToTags, ci.Issue, latestPatchSetID, tv.gerritURL, ci.Project, BuildBucketDefaultSkiaProject, bbBucket)
+		respBuilds, err := tv.bb2.ScheduleBuilds(ctx, triggerTryJobs, botsToTags, ci.Issue, latestPatchSetID, tv.gerritURL, ci.Project, bbProject, bbBucket)
 		if err != nil {
 			return "", "", skerr.Wrapf(err, "[%d] Could not trigger %+v tryjobs", ci.Issue, triggerTryJobs)
 		}
@@ -380,7 +385,7 @@
 // getIncludeFooterTryJobs parses footers for the footers.IncludeTryjobsFooter
 // and returns try jobs from it. If the specified project or bucket does not
 // match it is expected, then an error is returned.
-func (tv *TryJobsVerifier) getIncludeFooterTryJobs(issue int64, bbBucket string) ([]string, error) {
+func (tv *TryJobsVerifier) getIncludeFooterTryJobs(issue int64, bbProject, bbBucket string) ([]string, error) {
 	// Check, parse, and get the try jobs in IncludeTryjobsFooter if specified.
 	includeTryjobsFooter := git.GetStringFooterVal(tv.footersMap, footers.IncludeTryjobsFooter)
 	if includeTryjobsFooter == "" {
@@ -408,7 +413,7 @@
 			p = projectAndBucket[1]
 			b = fmt.Sprintf("%s.%s", projectAndBucket[2], projectAndBucket[3])
 		}
-		if p != BuildBucketDefaultSkiaProject {
+		if p != bbProject {
 			return nil, skerr.Fmt("Could not recognize bb project \"%s\" in %+v", p, includeTryJobsMap)
 		}
 		if b != bbBucket {
diff --git a/skcq/go/verifiers/tryjobs_verifier_test.go b/skcq/go/verifiers/tryjobs_verifier_test.go
index a62513f..735d9d4 100644
--- a/skcq/go/verifiers/tryjobs_verifier_test.go
+++ b/skcq/go/verifiers/tryjobs_verifier_test.go
@@ -17,6 +17,7 @@
 	"go.skia.org/infra/go/testutils"
 	"go.skia.org/infra/go/testutils/unittest"
 	cr_mocks "go.skia.org/infra/skcq/go/codereview/mocks"
+	"go.skia.org/infra/skcq/go/config"
 	"go.skia.org/infra/skcq/go/footers"
 	"go.skia.org/infra/skcq/go/types"
 	"go.skia.org/infra/task_scheduler/go/specs"
@@ -229,6 +230,60 @@
 	require.Equal(t, types.VerifierWaitingState, vs)
 }
 
+func TestVerify_AllSuccessfulTryJobs_RetriggerFooter_Internal(t *testing.T) {
+	unittest.SmallTest(t)
+
+	ci, gerritURL, tasksCfg := setupTest()
+	latestPatchsetID := int64(5)
+	tryJobName1 := "try_job1"
+	tryJobName2 := "try_job2"
+
+	// Setup codereview mock.
+	cr := &cr_mocks.CodeReview{}
+	cr.On("GetLatestPatchSetID", ci).Return(latestPatchsetID).Once()
+	cr.On("GetEquivalentPatchSetIDs", ci, latestPatchsetID).Return([]int64{latestPatchsetID}).Once()
+
+	// Setup buildbucket mock.
+	bb := &bb_mocks.BuildBucketInterface{}
+	bbBuilds := []*buildbucketpb.Build{
+		{
+			Builder:    &buildbucketpb.BuilderID{Builder: tryJobName1},
+			CreateTime: &timestamppb.Timestamp{Seconds: currentTime.Unix()},
+			Status:     buildbucketpb.Status_SUCCESS,
+		},
+		{
+			Builder:    &buildbucketpb.BuilderID{Builder: tryJobName2},
+			CreateTime: &timestamppb.Timestamp{Seconds: currentTime.Unix()},
+			Status:     buildbucketpb.Status_SUCCESS,
+		},
+	}
+	bb.On("GetTrybotsForCL", testutils.AnyContext, ci.Issue, latestPatchsetID, "https://"+gerritURL, map[string]string(nil)).Return(bbBuilds, nil).Twice()
+	defaultTags := map[string]string{
+		"triggered_by":    "skcq",
+		"cq_experimental": "false",
+	}
+	botsToTags := map[string]map[string]string{
+		tryJobName2: defaultTags,
+		tryJobName1: defaultTags,
+	}
+	bb.On("ScheduleBuilds", testutils.AnyContext, mock.Anything, botsToTags, ci.Issue, latestPatchsetID, gerritURL, ci.Project, BuildBucketInternalSkiaProject, BuildBucketInternalSkiaBucket).Return(bbBuilds, nil).Once()
+
+	// Test verify.
+	tv := &TryJobsVerifier{
+		bb2:       bb,
+		cr:        cr,
+		tasksCfg:  tasksCfg,
+		gerritURL: gerritURL,
+		footersMap: map[string]string{
+			string(footers.RerunTryjobsFooter): "true",
+		},
+		visibilityType: config.InternalVisibility,
+	}
+	vs, _, err := tv.Verify(context.Background(), ci, timeNowFunc().Unix())
+	require.NoError(t, err)
+	require.Equal(t, types.VerifierWaitingState, vs)
+}
+
 func TestVerify_IncludeTryjobsFooter(t *testing.T) {
 	unittest.SmallTest(t)