blob: ddb9d08cf8005970a1a62b9120ae538c6766e3b0 [file] [log] [blame]
// Copyright 2022 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
syntax = "proto3";
package recipe_modules.fuchsia.auto_roller;
import "google/protobuf/struct.proto";
message Options {
// Remote project URL to which changes should be sent for review, e.g.
// "fuchsia.googlesource.com/foo".
string remote = 1;
// Whether to execute this method in dry_run mode (upload the changes and do a
// CQ dry run, but don't submit).
bool dry_run = 2;
// Whether to commit untracked files in addition to modified already-tracked
// files.
bool commit_untracked = 3;
// Whether to create a Gerrit Change ID for the roll that is unique to this
// build. Default behavior is to calculate a change ID based solely on the
// contents of the change's git diff.
bool create_unique_change_id = 4;
// One of "NONE", "OWNER", "OWNER_REVIEWERS", "ALL" specifying whom to send
// roll CL notifications to.
string cl_notify_option = 5;
// Whether to force-submit the CL, bypassing CQ entirely (so changes will land
// even if the tree is closed). This is useful when rolling changes that have
// already been validated well enough that it's considered safe to roll them
// without further checks.
bool force_submit = 6;
// Whether CQ should skip running tryjobs on the CL. This is useful for
// rolling changes that are known to be no-ops but for which the tree status
// should still be respected to avoid launching unnecessary CI builds during
// tree closures.
bool no_tryjobs = 7;
// Vote Bot-Commit+1 instead of Code-Review+2.
bool bot_commit = 8;
// The git ref to roll changes into.
// Default: "main".
string upstream_ref = 9;
// Labels to set on created CL. This is in addition to Code-Review and
// Commit-Queue (depending on dry_run), but {"Commit-Queue": 0} deletes the
// "Commit-Queue" label. This allows for integration with projects not using
// CQ.
map<string, int32> labels_to_set = 10;
// Non-CQ/CR labels to wait on before submitting.
repeated string labels_to_wait_on = 11;
// List of emails to CC on the roll CL.
repeated string cc_emails = 12;
// Like cc_emails, but only gets CCd on roll failures.
repeated string cc_on_failure_emails = 13;
// Emails of the human owners of the auto-roller that's creating this change.
// If set, the emails will be included in a commit message footer for
// informational purposes.
repeated string roller_owners = 14;
// Map of bucket to list of extra tryjobs to include.
map<string, google.protobuf.ListValue> include_tryjobs = 15;
// Whether to add 'GitWatcher: ignore' to the footer of the roll commit
// message.
bool add_gitwatcher_ignore = 16;
// Controls what happens to a CL after a CQ run run. If set to "NEVER" the CL
// is always abandoned or submitted. If set to "ALWAYS" the CL is kept
// anot submitted, evene after a failure.
// This is used to automate creating CLs for rolled code that also needs to
// be reviewed before submitting.
string keep_cl = 17;
// List of emails to set as reviewers on the roll CL.
repeated string reviewer_emails = 18;
}