| // Copyright 2023 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"; |
| |
| import "google/protobuf/struct.proto"; |
| |
| option go_package = "go.fuchsia.dev/infra/cmd/roller-configurator/proto"; |
| |
| message Config { |
| repeated Roller rollers = 1; |
| } |
| |
| message Roller { |
| // Entity that should be rolled. |
| oneof to_roll { |
| GitSubmodule submodule = 1; |
| CIPDEnsureFile cipd_ensure_file = 2; |
| JiriProject jiri_project = 3; |
| JiriPackages jiri_packages = 4; |
| } |
| |
| // Cron schedule or time interval at which to trigger the roller. |
| // |
| // If left unset, the roller will only be triggerable manually. |
| // |
| // For supported syntax see: |
| // https://chromium.googlesource.com/infra/luci/luci-go/+/refs/heads/main/lucicfg/doc/README.md#schedules-doc |
| string schedule = 5; |
| |
| // Emails to alert when the roller fails. |
| repeated string notify_emails = 6; |
| |
| // TODO(olivernewman): owner, justification issue URL |
| } |
| |
| // A Git submodule to roll. |
| message GitSubmodule { |
| // Path to the submodule. |
| string path = 1; |
| } |
| |
| // A CIPD ensure file containing packages to roll. |
| message CIPDEnsureFile { |
| // Path to the CIPD ensure file. |
| string path = 1; |
| |
| // CIPD ref to track. Default is "latest". |
| string ref = 2; |
| } |
| |
| // A Jiri project (git repository pinned in a manifest) to roll. |
| message JiriProject { |
| // Path to the XML Jiri manifest in which the project is pinned. |
| string manifest = 1; |
| |
| // Name of the Jiri project to roll. |
| string project = 2; |
| } |
| |
| // CIPD packages pinned in a Jiri manifest to roll. |
| message JiriPackages { |
| // Mapping from Jiri manifest path to list of packages to roll within that |
| map<string, google.protobuf.ListValue> packages_by_manifest = 1; |
| |
| // CIPD ref to track. Default is "latest". |
| string ref = 2; |
| } |