| syntax = "proto3"; |
| package autoroll.config; |
| option go_package = "go.skia.org/infra/autoroll/go/config"; |
| |
| // Config provides configuration for one AutoRoller. |
| message Config { |
| // roller_name is the name for this roller. It is used as the unique ID for |
| // the roller. |
| // TODO(borenet): Use an actual DB-generated ID for the roller. |
| string roller_name = 1; |
| // child_display_name is the human-readable display name of the child. |
| string child_display_name = 2; |
| // parent_display_name is the human-readable display name of the parent. |
| string parent_display_name = 3; |
| // parent_waterfall is the URL of the waterfall display of the parent repo. |
| string parent_waterfall = 4; |
| // owner_primary is the primary owner of this roller. |
| string owner_primary = 5; |
| // owner_secondary is the secondary owner of this roller. |
| string owner_secondary = 6; |
| // contacts is a list of email addresses of contacts for this roller, used |
| // for sending PSAs, asking questions, etc. |
| repeated string contacts = 7; |
| // service_account is the full email address of the service account for this |
| // roller. |
| string service_account = 8; |
| // is_internal indicates whether this roller is internal, ie. only visible |
| // to Googlers. |
| // TODO(borenet): Is this necessary? |
| bool is_internal = 9; |
| // reviewer are the email addresses to add as reviewers on rolls, or URL(s) |
| // from which to obtain those email addresses. |
| repeated string reviewer = 10; |
| // reviewer_backup are backup email addresses to add as reviewers on rolls, |
| // in case obtaining the email addresses from the URL fails. Only required |
| // if a URL is specified for the reviewer. |
| repeated string reviewer_backup = 11; |
| // roll_cooldown is a period of time after a successful roll attempt during |
| // which no new roll attempts will be created. Optional. |
| string roll_cooldown = 12; |
| // time_window in which the roller is allowed to upload roll CLs. See the |
| // go/time_window package for supported format. |
| string time_window = 13; |
| // supports_manual_rolls indicates whether this roller supports manual |
| // rolls. |
| bool supports_manual_rolls = 14; |
| // commit_msg provides configuration for the commit message. |
| CommitMsgConfig commit_msg = 15; |
| // code_review provides configuration for code review. |
| oneof code_review { |
| // gerrit provides configuration for code review using Gerrit. |
| GerritConfig gerrit = 16; |
| // github provides configuration for code review using GitHub. |
| GitHubConfig github = 17; |
| // google3 provides configuration for code review using Google3. |
| Google3Config google3 = 18; |
| } |
| // kubernetes provides configuration for Kubernetes. |
| KubernetesConfig kubernetes = 19; |
| // repo_manager provides configuration for the repo manager. |
| oneof repo_manager { |
| ParentChildRepoManagerConfig parent_child_repo_manager = 20; |
| AndroidRepoManagerConfig android_repo_manager = 21; |
| CommandRepoManagerConfig command_repo_manager = 22; |
| FreeTypeRepoManagerConfig freetype_repo_manager = 23; |
| FuchsiaSDKAndroidRepoManagerConfig fuchsia_sdk_android_repo_manager = 24; |
| Google3RepoManagerConfig google3_repo_manager = 25; |
| } |
| // notifiers configures any extra notifications used by this roller. |
| repeated NotifierConfig notifiers = 26; |
| // safety_throttle provides configuration for safety-throttling the roller |
| // in case of persistent errors. |
| ThrottleConfig safety_throttle = 27; |
| // transitive_deps is an optional mapping of dependency ID (eg. repo URL) |
| // to the paths within the parent and child repo, respectively, where |
| // those dependencies are versioned, eg. "DEPS". |
| // TODO(borenet): Where is this used? Why isn't it nested within the repo |
| // manager config? |
| repeated TransitiveDepConfig transitive_deps = 28; |
| } |
| |
| // CommitMsgConfig provides configuration for commit messages. |
| message CommitMsgConfig { |
| // bug_project indicates which project (eg. in Monorail) the bugs attached |
| // to various revisions are associated with. If provided, any "Bug: " lines |
| // from revisions in the roll which match the given project name will be |
| // included in the roll itself. |
| string bug_project = 1; |
| // child_log_url_tmpl is a template for building log URLs using the IDs of |
| // the from- and to-revisions of the child for a given roll. |
| string child_log_url_tmpl = 2; |
| // cq_extra_trybots are additional tryjobs to trigger as part of the commit |
| // queue for every roll. |
| repeated string cq_extra_trybots = 3; |
| // cq_do_not_cancel_trybots indicates that the commit queue should not |
| // cancel tryjobs from old patch sets when a new patch set is uploaded. |
| bool cq_do_not_cancel_trybots = 4; |
| // include_log indicates whether the list of revisions contained in the roll |
| // should be included as part of the commit message. |
| bool include_log = 5; |
| // include_revision_count indicates whether the number of revisions |
| // contained in the roll should be included in the subject line of the |
| // commit message. |
| bool include_revision_count = 6; |
| // include_tbr_line indicates whether the "TBR:" line should be included in |
| // the commit message. This is required for some commit queues. |
| bool include_tbr_line = 7; |
| // include_tests indicates whether the "Test: " lines from the revisions in |
| // the roll should be propagated through to the roll itself. |
| bool include_tests = 8; |
| // extra_footers are any extra footers which should be added to all roll |
| // commit messages. |
| repeated string extra_footers = 11; |
| |
| // BuiltIn lists the built-in commit message templates. |
| enum BuiltIn { |
| // DEFAULT is the default commit message template. |
| DEFAULT = 0; |
| // ANDROID is the commit message template used for Android rollers. |
| ANDROID = 1; |
| } |
| |
| // template specifies exactly how the commit message should be structured. |
| // If not specified, the default template is used. |
| oneof template { |
| // built_in is the name of a built-in commit message template. |
| BuiltIn built_in = 9; |
| // custom is a full custom commit message template string. |
| string custom = 10; |
| } |
| } |
| |
| // GerritConfig provides configuration for code review using Gerrit. |
| message GerritConfig { |
| // url of the Gerrit host. |
| string url = 1; |
| // project name for uploaded CLs. |
| string project = 2; |
| |
| // Config lists the built-in Gerrit configs, named for the projects which |
| // use them. |
| enum Config { |
| ANDROID = 0; |
| ANGLE = 1; |
| CHROMIUM = 2; |
| CHROMIUM_NO_CQ = 3; |
| LIBASSISTANT = 4; |
| CHROMIUM_BOT_COMMIT = 5; |
| CHROMIUM_BOT_COMMIT_NO_CQ = 6; |
| ANDROID_NO_CR = 7; |
| } |
| // config indicates the mode of operation used by the Gerrit host, which |
| // informs the roller of, for example, which labels to set. See the |
| // autoroll/go/codereview package for possible values. |
| Config config = 3; |
| } |
| |
| // GitHubConfig provides configuration for code review using GitHub. |
| message GitHubConfig { |
| // repo_owner is the owner of the GitHub repo. |
| string repo_owner = 1; |
| // repo_name is the name of the GitHub repo. |
| string repo_name = 2; |
| // checks_wait_for indicates which GitHub checks must succeed before a pull |
| // request may be merged. If they are failing, we wait for them to succeed |
| // (eg. tree-status checks). Note: These checks are ignored during dry runs |
| // because the PR is not going to be submitted so the tree-status checks |
| // will not be important in that case. |
| repeated string checks_wait_for = 3; |
| } |
| |
| // Google3Config is an empty configuration object for Google3. |
| message Google3Config {} |
| |
| // KubernetesConfig provides Kubernetes configuration for the autoroll backend |
| // service for this roller. |
| message KubernetesConfig { |
| // cpu is the requested number of CPUs, eg. "250m". |
| string cpu = 1; |
| // memory is the requested memory, eg. "2Gi". |
| string memory = 2; |
| // readiness_failure_threshold indicates how many times the ready check may |
| // fail. |
| int32 readiness_failure_threshold = 3; |
| // readiness_initial_delay_seconds indicates how long to wait before |
| // performing the ready check for the first time. |
| int32 readiness_initial_delay_seconds = 4; |
| // readiness_period_seconds indicates how often to perform the ready check. |
| int32 readiness_period_seconds = 5; |
| // disk indicates the size of the requested persistent disk. If not |
| // specified, no persistent disk is used. |
| string disk = 6; |
| // secrets provided to the pod. |
| repeated KubernetesSecret secrets = 7; |
| } |
| |
| // KubernetesSecret provides configuration for a Kubernetes secret. |
| message KubernetesSecret { |
| // name of the secret. |
| string name = 1; |
| // mount_path of the secret. |
| string mount_path = 2; |
| } |
| |
| // AndroidRepoManagerConfig provides configuration for a roller which rolls into |
| // Android. |
| message AndroidRepoManagerConfig { |
| // ProjectMetadataFileConfig provides configuration for METADATA files in |
| // the Android repo. |
| message ProjectMetadataFileConfig { |
| // file_path of the project metadata file within the repo. |
| string file_path = 1; |
| // name of the project. |
| string name = 2; |
| // description of the project. |
| string description = 3; |
| // home_page of the project. |
| string home_page = 4; |
| // git_url of the project. |
| string git_url = 5; |
| // license_type of the project. |
| string license_type = 6; |
| } |
| |
| // child_repo_url is the URL of the child repo. |
| string child_repo_url = 1; |
| // child_branch is the Git branch of the child repo to track. |
| string child_branch = 2; |
| // child_path is the path to the child repo within the parent. |
| string child_path = 3; |
| // parent_repo_url is the URL of the parent repo. |
| string parent_repo_url = 4; |
| // parent_branch is the Git branch of the parent repo to track. |
| string parent_branch = 5; |
| // child_rev_link_tmpl is a template used to create links to revisions of |
| // the child repo. If not supplied, no links will be created. |
| string child_rev_link_tmpl = 6; |
| // child_subdir indicates the subdirectory of the working directory (not the |
| // parent repo) in which the child_path should be rooted. In most cases this |
| // should be empty, but if child_path is relative to the parent repo dir |
| // (eg. when DEPS specifies use_relative_paths), then this is required. |
| string child_subdir = 7; |
| // pre_upload_steps are named steps to run before uploading roll CLs. |
| repeated PreUploadStep pre_upload_steps = 8; |
| // metadata about the child project which should be updated in a file |
| // checked into the parent repo. |
| ProjectMetadataFileConfig metadata = 9; |
| // include_authors_as_reviewers determines whether the authors of rolled |
| // changes should be included as change reviewers. |
| bool include_authors_as_reviewers = 10; |
| // pre_upload describes command(s) to run before uploading roll CLs. |
| PreUploadConfig pre_upload_commands = 11; |
| } |
| |
| // CommandRepoManagerConfig provides configuration for a roller which runs |
| // specified commands to perform different functions. |
| message CommandRepoManagerConfig { |
| message CommandConfig { |
| // command to run. If this is the command used to update the revision of |
| // the Child, this should be a text template which uses SetPinnedRevVars |
| // to get the from- and to-revisions. |
| repeated string command = 1; |
| // dir is the relative path within the Git checkout to run the command. |
| string dir = 2; |
| // env are environment variables to supply to the command, in KEY=VALUE |
| // format. |
| repeated string env = 3; |
| } |
| |
| // git_checkout configures the Git checkout of the parent repo. |
| GitCheckoutConfig git_checkout = 1; |
| // short_rev_regex is a regular expression used to shorten revision IDs for |
| // display. |
| string short_rev_regex = 2; |
| // get_tip_rev is a command used to obtain the latest revision of the Child. |
| CommandConfig get_tip_rev = 3; |
| // get_pinned_rev is a command used to obtain the currently-pinned revision |
| // of the Child. |
| CommandConfig get_pinned_rev = 4; |
| // set_pinned_rev is a command used to update the currently-pinned revision |
| // of the Child. |
| CommandConfig set_pinned_rev = 5; |
| } |
| |
| // FreeTypeRepoManagerConfig provides configuration for the FreeType roller. |
| message FreeTypeRepoManagerConfig { |
| FreeTypeParentConfig parent = 1; |
| GitilesChildConfig child = 2; |
| } |
| |
| // FuchsiaSDKAndroidRepoManagerConfig provides configuration for the Fuchsia SDK |
| // into Android roller. |
| message FuchsiaSDKAndroidRepoManagerConfig { |
| GitCheckoutParentConfig parent = 1; |
| FuchsiaSDKChildConfig child = 2; |
| // gen_sdk_bp_repo is the repo URL for the generation script. |
| string gen_sdk_bp_repo = 3; |
| // gen_sdk_bp_branch is the branch of the generation script. |
| string gen_sdk_bp_branch = 4; |
| } |
| |
| // Google3RepoManagerConfig provides configuration for a roller into Google3. |
| message Google3RepoManagerConfig { |
| // child_branch is the branch of the child repo to track. |
| string child_branch = 1; |
| // child_repo is the URL of the child repo. |
| string child_repo = 2; |
| } |
| |
| // ParentChildRepoManagerConfig provides configuration for a roller which |
| // combines a pre-defined Parent and Child type. |
| message ParentChildRepoManagerConfig { |
| // parent is the entity which depends on the child and receives the rolls. |
| oneof parent { |
| CopyParentConfig copy_parent = 1; |
| DEPSLocalGitHubParentConfig deps_local_github_parent = 2; |
| DEPSLocalGerritParentConfig deps_local_gerrit_parent = 3; |
| GitCheckoutGitHubFileParentConfig git_checkout_github_file_parent = 4; |
| GitilesParentConfig gitiles_parent = 5; |
| } |
| // child is the entity which is depended on by the parent and is rolled. |
| oneof child { |
| CIPDChildConfig cipd_child = 6; |
| FuchsiaSDKChildConfig fuchsia_sdk_child = 7; |
| GitCheckoutChildConfig git_checkout_child = 8; |
| GitCheckoutGitHubChildConfig git_checkout_github_child = 9; |
| GitilesChildConfig gitiles_child = 10; |
| SemVerGCSChildConfig semver_gcs_child = 11; |
| } |
| // revision_filter filters out revisions of the child which should not be |
| // considered as roll candidates. |
| oneof revision_filter { |
| BuildbucketRevisionFilterConfig buildbucket_revision_filter = 12; |
| } |
| } |
| |
| // CopyParentConfig provides configuration for a Parent which copies the Child |
| // into itself. It uses Gitiles and Gerrit instead of a local checkout. |
| message CopyParentConfig { |
| message CopyEntry { |
| // src_rel_path is the relative path within the Child. |
| string src_rel_path = 1; |
| // dst_rel_path is the relative path within the Parent. |
| string dst_rel_path = 2; |
| } |
| |
| GitilesParentConfig gitiles = 1; |
| repeated CopyEntry copies = 2; |
| } |
| |
| // DEPSLocalGitHubParentConfig provides configuration for a Parent which uses a |
| // local Git checkout with DEPS and uploads pull requests to GitHub. |
| message DEPSLocalGitHubParentConfig { |
| DEPSLocalParentConfig deps_local = 1; |
| GitHubConfig github = 2; |
| string fork_repo_url = 3; |
| } |
| |
| // DEPSLocalGerritParentConfig provides configuration for a Parent which uses a |
| // local Git checkout with DEPS and uploads CLs to Gerrit. |
| message DEPSLocalGerritParentConfig { |
| DEPSLocalParentConfig deps_local = 1; |
| GerritConfig gerrit = 2; |
| } |
| |
| // GitCheckoutGitHubParentConfig provides configuration for a Parent which |
| // uses a local Git checkout and uploads pull requests to GitHub. |
| // TODO(borenet): Why doesn't this contain the GitHubConfig? Is this even |
| // needed? |
| message GitCheckoutGitHubParentConfig { |
| GitCheckoutParentConfig git_checkout = 1; |
| string fork_repo_url = 2; |
| } |
| |
| // GitCheckoutGitHubFileParentConfig provides configuration for a Parent which |
| // uses a local Git checkout and uploads pull requests to GitHub. |
| message GitCheckoutGitHubFileParentConfig { |
| GitCheckoutGitHubParentConfig git_checkout = 1; |
| repeated PreUploadStep pre_upload_steps = 2; |
| // pre_upload describes command(s) to run before uploading roll CLs. |
| PreUploadConfig pre_upload_commands = 3; |
| } |
| |
| // GitilesParentConfig provides configuration for a Parent which uses Gitiles. |
| message GitilesParentConfig { |
| GitilesConfig gitiles = 1; |
| DependencyConfig dep = 2; |
| GerritConfig gerrit = 3; |
| } |
| |
| // GitilesConfig provides configuration for a Git repo in Gitiles. |
| message GitilesConfig { |
| // branch to track. |
| string branch = 1; |
| // repo_url from which to load Git data. |
| string repo_url = 2; |
| // dependencies is an optional specification of dependencies to track. |
| // Revisions generated by the checkout will contain the pinned versions of |
| // these dependencies. |
| repeated VersionFileConfig dependencies = 3; |
| } |
| |
| // DEPSLocalConfig provides configuration for a Parent which uses a local |
| // checkout and DEPS to manage dependencies. |
| message DEPSLocalParentConfig { |
| GitCheckoutParentConfig git_checkout = 1; |
| // child_path is the path to the child repo within the parent. |
| string child_path = 2; |
| // child_subdir is the subdirectory of the workdir in which the child_path |
| // should be rooted. In most cases, this should be empty, but if child_path |
| // is relative to the parent repo dir (eg. when DEPS specifies |
| // use_relative_paths), then this is required. |
| string child_subdir = 3; |
| // checkout_path is the path to the repo within the checkout root |
| string checkout_path = 4; |
| // gclient_spec overrides the default gclient spec. |
| string gclient_spec = 5; |
| // pre_upload_steps are steps to run before uploading the CL. |
| repeated PreUploadStep pre_upload_steps = 6; |
| // run_hooks indicates whether to run "gclient runhooks" after syncing. |
| bool run_hooks = 7; |
| // pre_upload describes command(s) to run before uploading roll CLs. |
| PreUploadConfig pre_upload_commands = 8; |
| } |
| |
| // GitCheckoutParentConfig provides configuration for a Parent which uses a |
| // local checkout to create changes. |
| message GitCheckoutParentConfig { |
| GitCheckoutConfig git_checkout = 1; |
| DependencyConfig dep = 2; |
| } |
| |
| // FreeTypeParentConfig provides configuration for the FreeType Parent. |
| message FreeTypeParentConfig { |
| GitilesParentConfig gitiles = 1; |
| } |
| |
| // CIPDChildConfig provides configuration for a CIPD package Child. |
| message CIPDChildConfig { |
| // name of the package. |
| string name = 1; |
| // tag to track. |
| string tag = 2; |
| // gitiles_repo is an optional config for a git repo which should be used |
| // for generating the list of revisions in a roll. Both the old and new |
| // CIPD package version must provide a git_revision tag in order for this |
| // to work. |
| string gitiles_repo = 4; |
| } |
| |
| // FuchsiaSDKChildConfig provides configuration for the Fuchsia SDK Child. |
| message FuchsiaSDKChildConfig { |
| // include_mac_sdk indicates whether to also roll the version of the Mac |
| // SDK. Note that the dependency is not tracked separately; the Mac SDK is |
| // simply rolled to the newest available version. |
| bool include_mac_sdk = 1; |
| } |
| |
| // SemVerGCSChildConfig provides configuration for a Child in GCS which uses |
| // semantic versioning. |
| message SemVerGCSChildConfig { |
| GCSChildConfig gcs = 1; |
| // short_rev_regex is a regular expression string which indicates what part |
| // of the revision ID string should be used as the shortened ID for display. |
| // If not specified, the full ID string is used. |
| string short_rev_regex = 2; |
| // version_regex is a regular expression string containing one or more |
| // integer capture groups. The integers matched by the capture groups are |
| // compared, in order, when comparing two revisions. |
| string version_regex = 3; |
| } |
| |
| // GCSChildConfig provides configuration for a Child in GCS. |
| message GCSChildConfig { |
| // gcs_bucket used for finding Child revisions. |
| string gcs_bucket = 1; |
| // gcs_path within the bucket which contains child revisions. |
| string gcs_path = 2; |
| } |
| |
| // GitCheckoutChildConfig provides configuration for a Child which uses a local |
| // Git checkout. |
| message GitCheckoutChildConfig { |
| GitCheckoutConfig git_checkout = 1; |
| } |
| |
| // GitCheckoutGitHubChildConfig provides configuration for a Child which uses a |
| // local checkout of a GitHub repo. |
| message GitCheckoutGitHubChildConfig { |
| GitCheckoutChildConfig git_checkout = 1; |
| string repo_owner = 2; |
| string repo_name = 3; |
| } |
| |
| // GitilesChildConfig provides configuration for a Child which uses Gitiles. |
| message GitilesChildConfig { |
| GitilesConfig gitiles = 1; |
| // path indicates an optional single path of the repo to watch for changes; |
| // all commits which do not change this path are ignored. Note that this |
| // may produce strange results if the Git history for the path is not |
| // linear. |
| string path = 2; |
| } |
| |
| // PreUploadStep lists the known pre-upload steps which may be run before roll |
| // CLs are uploaded. These must be kept in sync with |
| // go/repo_manager/parent/pre_upload_steps.go. |
| enum PreUploadStep { |
| ANGLE_CODE_GENERATION = 0; |
| ANGLE_GN_TO_BP = 1; |
| ANGLE_ROLL_CHROMIUM = 2; |
| GO_GENERATE_CIPD = 3; |
| FLUTTER_LICENSE_SCRIPTS = 4; |
| FLUTTER_LICENSE_SCRIPTS_FOR_DART = 5; |
| FLUTTER_LICENSE_SCRIPTS_FOR_FUCHSIA = 6; |
| SKIA_GN_TO_BP = 7; |
| TRAIN_INFRA = 8; |
| UPDATE_FLUTTER_DEPS_FOR_DART = 9; |
| VULKAN_DEPS_UPDATE_COMMIT_MESSAGE = 10; |
| UPDATE_BORINGSSL = 11; |
| CHROMIUM_ROLL_WEBGPU_CTS = 12; |
| } |
| |
| |
| // NotifierConfig provides configuration for a notification system. |
| message NotifierConfig { |
| // LogLevel categorizes messages similarly to log severity. |
| enum LogLevel { |
| SILENT = 0; |
| ERROR = 1; |
| WARNING = 2; |
| INFO = 3; |
| DEBUG = 4; |
| } |
| |
| // MsgType categorizes notifications based on their type. |
| enum MsgType { |
| ISSUE_UPDATE = 0; |
| LAST_N_FAILED = 1; |
| MODE_CHANGE = 2; |
| NEW_FAILURE = 3; |
| NEW_SUCCESS = 4; |
| ROLL_CREATION_FAILED = 5; |
| SAFETY_THROTTLE = 6; |
| STRATEGY_CHANGE = 7; |
| SUCCESS_THROTTLE = 8; |
| } |
| |
| // log_level allows all messages at and above the given severity to be |
| // sent. Mutually exclusive with msg_type. |
| LogLevel log_level = 1; |
| // msg_type limits the notifier to only send messages of the given |
| // types. Mutually exclusive with log_level. |
| repeated MsgType msg_type = 2; |
| |
| // config provides configuration for the specific type of notifier. |
| oneof config { |
| EmailNotifierConfig email = 3; |
| ChatNotifierConfig chat = 4; |
| MonorailNotifierConfig monorail = 5; |
| PubSubNotifierConfig pubsub = 6; |
| } |
| |
| // subject indicates a subject line which overrides the default subject line |
| // for every notification message, if provided. |
| string subject = 7; |
| } |
| |
| // EmailNotifierConfig provides configuration for email notifications. |
| message EmailNotifierConfig { |
| // emails are the email addresses which should receive notifications. |
| repeated string emails = 1; |
| } |
| |
| // ChatNotifierConfig provides configuration for Google Chat notifications. |
| message ChatNotifierConfig { |
| // room_id in which to post messages. |
| string room_id = 1; |
| } |
| |
| // MonorailNotifierConfig provides configuration for bug-filing "notifications" |
| // using Monorail. |
| message MonorailNotifierConfig { |
| // project name under which to file bugs. Required. |
| string project = 1; |
| // owner of bugs filed in Monorail. Required. |
| string owner = 2; |
| // cc these email addresses on bugs filed in Monorail. |
| repeated string cc = 3; |
| // components to apply to bugs filed in Monorail. |
| repeated string components = 4; |
| // labels to apply to bugs filed in Monorail. |
| repeated string labels = 5; |
| } |
| |
| // PubSubNotifierConfig provides configuration for PubSub notifications. |
| message PubSubNotifierConfig { |
| // topic under which to publish PubSub messages. |
| string topic = 1; |
| } |
| |
| // ThrottleConfig provides configuration for throttling. |
| message ThrottleConfig { |
| // attempt_count indicates the number of failed attempts after which to |
| // begin throttling. |
| int32 attempt_count = 1; |
| // time_window during which, if the number of failed attempts exceeds the |
| // specified attempt_count, throttling is enabled. |
| string time_window = 2; |
| } |
| |
| // TransitiveDepConfig provides configuration for a dependency referenced by |
| // both the parent and child, to be updated in the parent to match the revision |
| // depended on by the child at the revision being rolled. |
| message TransitiveDepConfig { |
| // child dependency information. |
| VersionFileConfig child = 1; |
| // parent dependency information. |
| VersionFileConfig parent = 2; |
| } |
| |
| // VersionFileConfig provides configuration for a dependency whose version is |
| // pinned within a particular file. |
| message VersionFileConfig { |
| // id of the dependency to be rolled, eg. a repo URL. |
| string id = 1; |
| // path within the repo of the file which pins the dependency. |
| string path = 2; |
| } |
| |
| // DependencyConfig provides configuration for a dependency whose version is |
| // pinned in a file and which may have transitive dependencies. |
| message DependencyConfig { |
| // primary dependency. |
| VersionFileConfig primary = 1; |
| // transitive dependencies. |
| repeated TransitiveDepConfig transitive = 2; |
| } |
| |
| // GitCheckoutConfig provides configuration for a Git checkout. |
| message GitCheckoutConfig { |
| // branch to track. |
| string branch = 1; |
| // repo_url to check out. |
| string repo_url = 2; |
| // rev_link_tmpl is an optional template used for generating links to |
| // revisions. If not specified, revisions generated by the checkout will not |
| // have an associated URL. |
| string rev_link_tmpl = 3; |
| // dependencies is an optional specification of dependencies to track. |
| // Revisions generated by the checkout will contain the pinned versions of |
| // these dependencies. |
| repeated VersionFileConfig dependencies = 4; |
| } |
| |
| // BuildbucketRevisionFilterConfig provides configuration for a revision filter |
| // which uses Buildbucket. |
| message BuildbucketRevisionFilterConfig { |
| string project = 1; |
| string bucket = 2; |
| string buildset_commit_tmpl = 3; |
| repeated string builder = 4; |
| } |
| |
| // PreUploadConfig describes additional steps to run after updating the |
| // dependency but before uploading the CL, on rollers which use a local |
| // checkout. |
| message PreUploadConfig { |
| // CIPD packages needed by the command(s). |
| repeated PreUploadCIPDPackageConfig cipd_package = 1; |
| // Command(s) to run. |
| repeated PreUploadCommandConfig command = 2; |
| } |
| |
| // PreUploadCommandConfig describes a command to run. |
| message PreUploadCommandConfig { |
| // Command to run. |
| string command = 1; |
| // Working directory in which to run the command. |
| string cwd = 2; |
| // Environment variables needed by the command, in "KEY=VALUE" format. |
| repeated string env = 3; |
| // If true, log the error returned by the command but don't error out. |
| bool ignore_failure = 4; |
| } |
| |
| // CIPDPackageConfig describes a CIPD package. |
| message PreUploadCIPDPackageConfig { |
| // Full CIPD package name. |
| string name = 1; |
| // Relative path within the root dir to install the package. |
| string path = 2; |
| // Version of the package. |
| string version = 3; |
| } |