| // Copyright 2020 The Pigweed Authors | 
 | // | 
 | // Licensed under the Apache License, Version 2.0 (the "License"); you may not | 
 | // use this file except in compliance with the License. You may obtain a copy of | 
 | // the License at | 
 | // | 
 | //     https://www.apache.org/licenses/LICENSE-2.0 | 
 | // | 
 | // Unless required by applicable law or agreed to in writing, software | 
 | // distributed under the License is distributed on an "AS IS" BASIS, WITHOUT | 
 | // WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the | 
 | // License for the specific language governing permissions and limitations under | 
 | // the License. | 
 | syntax = "proto3"; | 
 |  | 
 | package recipe_modules.pigweed.checkout; | 
 |  | 
 | message EquivalentRemotes { | 
 |   // List of remotes that should be considered equivalent to each other. | 
 |   repeated string remotes = 1; | 
 | } | 
 |  | 
 | message Rewrite { | 
 |   // Configure git to rewrite all URLs with a prefix of original to final. | 
 |   string original = 1; | 
 |   string final = 2; | 
 | } | 
 |  | 
 | message Options { | 
 |   // Path to remote repository. (Default: | 
 |   // "https://pigweed.googlesource.com/pigweed/pigweed") | 
 |   string remote = 1; | 
 |  | 
 |   // Branch of remote repository. (Default: "main") | 
 |   string branch = 2; | 
 |  | 
 |   // Is this repository an Android Repo Tool manifest? (Default: False) | 
 |   bool use_repo = 3; | 
 |  | 
 |   // Name of Android Repo Tool manifest file. (Default: "default.xml") | 
 |   string manifest_file = 4; | 
 |  | 
 |   // Automatically initialize submodules. Ignored if included_submodules or | 
 |   // excluded_submodules is set. | 
 |   bool initialize_submodules = 5; | 
 |  | 
 |   // Timeouts for repo (which sometimes hangs). If 0 uses default of 20 for | 
 |   // init and 120 for sync. Cannot be disabled, but int32 supports some really | 
 |   // large values. If number of attempts is 0 it's set to 3. | 
 |   int32 repo_init_timeout_sec = 6; | 
 |   int32 repo_sync_timeout_sec = 7; | 
 |   int32 number_of_attempts = 8; | 
 |  | 
 |   // In try builds CLs are rebased by default. In ci builds they are not. This | 
 |   // option prevents rebasing on try builds. | 
 |   bool force_no_rebase = 9; | 
 |  | 
 |   // If a tryjob is triggered by a CL on branch 'foo', try to use branch 'foo' | 
 |   // of any superprojects or manifests containing the CL's repo as a submodule | 
 |   // or project. (Note: branch matching is not yet implemented for submodules.) | 
 |   bool match_branch = 10; | 
 |  | 
 |   // Timeout for 'git submodule update --init --recursive'. Default is | 
 |   // 10 minutes. | 
 |   int32 submodule_timeout_sec = 11; | 
 |  | 
 |   // Use buildbucket trigger data. | 
 |   bool use_trigger = 12; | 
 |  | 
 |   // Lists of remotes that should be considered equivalent to each other. | 
 |   // This is intended to be used with branches that are automatically kept in | 
 |   // sync across Gerrit hosts, so a CL in one will be understood to apply to a | 
 |   // submodule or Android Repo Tool project with the other as the remote. | 
 |   // | 
 |   // Example: | 
 |   // [ | 
 |   //     [ | 
 |   //         "https://a.googlesource.com/foo", | 
 |   //         "https://b.googlesource.com/foo", | 
 |   //         "https://c.googlesource.com/foo", | 
 |   //     ], | 
 |   //     [ | 
 |   //         "https://d.googlesource.com/bar", | 
 |   //         "https://e.googlesource.com/bar", | 
 |   //     ], | 
 |   // ] | 
 |   // | 
 |   // In this case a/foo, b/foo, and c/foo are all mirrors of each other, as | 
 |   // well as d/bar and e/bar, but a/foo and d/bar are unrelated. | 
 |   // | 
 |   // See also http://go/gob-ctl#copying-git-repository. | 
 |   repeated EquivalentRemotes equivalent_remotes = 13; | 
 |  | 
 |   // Subdirectory of checkout in which commands should be executed. Uncommon. | 
 |   string root_subdirectory = 14; | 
 |  | 
 |   // Do not use a cache of the checkout. | 
 |   bool do_not_cache = 15; | 
 |  | 
 |   // Instead of including all submodules (initialize_submodules == false) or | 
 |   // including no submodules (initialize_submodules == true), initialize a | 
 |   // subset of the submodules present in the source tree. Setting both of these | 
 |   // is not permitted. | 
 |   repeated string included_submodules = 16; | 
 |   repeated string excluded_submodules = 17; | 
 |  | 
 |   // Disable downloading precomputed packfiles from a CDN. | 
 |   bool do_not_use_packfiles = 18; | 
 |  | 
 |   // Limit the Android Repo Tool checkout to these groups from the manifest | 
 |   // file. | 
 |   repeated string manifest_groups = 19; | 
 |  | 
 |   // Rewrites of Git remotes. | 
 |   repeated Rewrite rewrites = 20; | 
 |  | 
 |   // Attempt to patch Bazel projects in the given files. | 
 |   repeated string eligible_workspace_paths = 21; | 
 |  | 
 |   // Whether to use the '--no-clone-bundle' option to 'repo init', | 
 |   bool repo_no_clone_bundle = 22; | 
 | } |