[infra] CTS roller: add Bot-Commit+1

The CTS roller account should now have permission to use Bot-Commit.
This change should allow CTS rolls to be landed with just one OWNER
review. (Though rolls that fail to complete, e.g. if they time out on
the last iteration, but then end up succeeding after timing out, won't
get the label.)

To make this work we use an explicit list of owners for the submodule so
that rolls must be reviewed by someone, rather than just being ready to
CQ+2 as soon as they're posted.

This will need to be tested after it lands because only the bot can run
with the trusted account that has Bot-Commit permissions.

Bug: 402777879
Change-Id: I48a92e52587908fd1d808703ff57a7ef0aec81a4
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/300675
Commit-Queue: Kai Ninomiya <kainino@chromium.org>
Reviewed-by: Brian Sheedy <bsheedy@google.com>
diff --git a/OWNERS b/OWNERS
index 856b553..7356421 100644
--- a/OWNERS
+++ b/OWNERS
@@ -64,7 +64,7 @@
 per-file third_party/vulkan-tools/src=*
 per-file third_party/vulkan-utility-libraries/src=*
 per-file third_party/vulkan-validation-layers/src=*
-per-file third_party/webgpu-cts=*
+per-file third_party/webgpu-cts=file://third_party/gn/webgpu-cts/OWNERS
 per-file third_party/webgpu-headers/src=*
 per-file third_party/zlib=*
 per-file tools/clang=*
diff --git a/third_party/gn/webgpu-cts/OWNERS b/third_party/gn/webgpu-cts/OWNERS
index f4d0f3c..b090634 100644
--- a/third_party/gn/webgpu-cts/OWNERS
+++ b/third_party/gn/webgpu-cts/OWNERS
@@ -2,3 +2,20 @@
 per-file resource_files.txt=*
 per-file test_list.txt=*
 per-file ts_sources.txt=*
+
+# Approximately everyone on the gardening rotation. This is used as the OWNER
+# list for the submodule so that autorolls require review.
+alanbaker@google.com
+amaiorano@google.com
+bajones@chromium.org
+chouinard@google.com
+cwallez@chromium.org
+dneto@google.com
+dsinclair@chromium.org
+gman@chromium.org
+jrprice@google.com
+kainino@chromium.org
+lokokung@google.com
+rharrison@chromium.org
+senorblanco@google.com
+shrekshao@google.com
diff --git a/tools/src/cmd/cts/roll/roll.go b/tools/src/cmd/cts/roll/roll.go
index b095cee..c9a5e19 100644
--- a/tools/src/cmd/cts/roll/roll.go
+++ b/tools/src/cmd/cts/roll/roll.go
@@ -471,6 +471,7 @@
 	}()
 
 	// Begin main roll loop
+	clRevision := 0
 	for attempt := 0; ; attempt++ {
 		// Kick builds
 		log.Printf("building (pass %v)...\n", attempt+1)
@@ -535,6 +536,8 @@
 			r.gerrit.Comment(ps, err.Error(), nil)
 			return err
 		}
+
+		clRevision = ps.Patchset
 	}
 
 	reviewer := ""
@@ -563,6 +566,10 @@
 		reviewer = jsonRes.Emails[0]
 	}
 
+	if err := r.gerrit.AddLabel(changeID, strconv.Itoa(clRevision), "", "Bot-Commit", 1); err != nil {
+		fmt.Println("WARNING: unable to Bot-Commit+1 (expected if running locally): ", err)
+	}
+
 	if err := r.gerrit.SetReadyForReview(changeID, "CTS roll succeeded", reviewer); err != nil {
 		return fmt.Errorf("failed to mark change as ready for review: %v", err)
 	}