github.com/zppinho/prow@v0.0.0-20240510014325-1738badeb017/pkg/config/prow-config-documented.yaml (about)

     1  branch-protection:
     2      # AllowDeletions allows deletion of the protected branch by anyone with write access to the repository.
     3      allow_deletions: false
     4      # AllowDisabledJobPolicies allows a branch to choose to opt out of branch protection
     5      # even if Prow has registered required jobs for that branch.
     6      allow_disabled_job_policies: false
     7      # AllowDisabledPolicies allows a child to disable all protection even if the
     8      # branch has inherited protection options from a parent.
     9      allow_disabled_policies: false
    10      # AllowForcePushes permits force pushes to the protected branch by anyone with write access to the repository.
    11      allow_force_pushes: false
    12      # Admins overrides whether protections apply to admins if set.
    13      enforce_admins: false
    14      # Exclude specifies a set of regular expressions which identify branches
    15      # that should be excluded from the protection policy, mutually exclusive with Include
    16      exclude:
    17          - ""
    18      # Include specifies a set of regular expressions which identify branches
    19      # that should be included from the protection policy, mutually exclusive with Exclude
    20      include:
    21          - ""
    22      # Orgs holds branch protection options for orgs by name
    23      orgs:
    24          "":
    25              # AllowDeletions allows deletion of the protected branch by anyone with write access to the repository.
    26              allow_deletions: false
    27              # AllowForcePushes permits force pushes to the protected branch by anyone with write access to the repository.
    28              allow_force_pushes: false
    29              # Admins overrides whether protections apply to admins if set.
    30              enforce_admins: false
    31              # Exclude specifies a set of regular expressions which identify branches
    32              # that should be excluded from the protection policy, mutually exclusive with Include
    33              exclude:
    34                  - ""
    35              # Include specifies a set of regular expressions which identify branches
    36              # that should be included from the protection policy, mutually exclusive with Exclude
    37              include:
    38                  - ""
    39              # Protect overrides whether branch protection is enabled if set.
    40              protect: false
    41              repos:
    42                  "":
    43                      # AllowDeletions allows deletion of the protected branch by anyone with write access to the repository.
    44                      allow_deletions: false
    45                      # AllowForcePushes permits force pushes to the protected branch by anyone with write access to the repository.
    46                      allow_force_pushes: false
    47                      branches:
    48                          "":
    49                              # AllowDeletions allows deletion of the protected branch by anyone with write access to the repository.
    50                              allow_deletions: false
    51                              # AllowForcePushes permits force pushes to the protected branch by anyone with write access to the repository.
    52                              allow_force_pushes: false
    53                              # Admins overrides whether protections apply to admins if set.
    54                              enforce_admins: false
    55                              # Exclude specifies a set of regular expressions which identify branches
    56                              # that should be excluded from the protection policy, mutually exclusive with Include
    57                              exclude:
    58                                  - ""
    59                              # Include specifies a set of regular expressions which identify branches
    60                              # that should be included from the protection policy, mutually exclusive with Exclude
    61                              include:
    62                                  - ""
    63                              # Protect overrides whether branch protection is enabled if set.
    64                              protect: false
    65                              # RequireManuallyTriggeredJobs enforces a context presence when job runs conditionally, but not automatically,
    66                              # that results in params always_run: false, optional: false, and skip_if_only_change, run_if_changed not present.
    67                              require_manually_triggered_jobs: false
    68                              # RequiredLinearHistory enforces a linear commit Git history, which prevents anyone from pushing merge commits to a branch.
    69                              required_linear_history: false
    70                              # RequiredPullRequestReviews specifies github approval/review criteria.
    71                              required_pull_request_reviews:
    72                                  # BypassRestrictions appends users/teams that are allowed to bypass PR restrictions
    73                                  bypass_pull_request_allowances:
    74                                      teams:
    75                                          - ""
    76                                      users:
    77                                          - ""
    78                                  # DismissStale overrides whether new commits automatically dismiss old reviews if set
    79                                  dismiss_stale_reviews: false
    80                                  # DismissalRestrictions appends users/teams that are allowed to merge
    81                                  dismissal_restrictions:
    82                                      teams:
    83                                          - ""
    84                                      users:
    85                                          - ""
    86                                  # RequireOwners overrides whether CODEOWNERS must approve PRs if set
    87                                  require_code_owner_reviews: false
    88                                  # Approvals overrides the number of approvals required if set
    89                                  required_approving_review_count: 0
    90                              # RequiredStatusChecks configures github contexts
    91                              required_status_checks:
    92                                  # Contexts appends required contexts that must be green to merge
    93                                  contexts:
    94                                      - ""
    95                                  # Strict overrides whether new commits in the base branch require updating the PR if set
    96                                  strict: false
    97                              # Restrictions limits who can merge
    98                              restrictions:
    99                                  apps:
   100                                      - ""
   101                                  teams:
   102                                      - ""
   103                                  users:
   104                                      - ""
   105                              # Unmanaged makes us not manage the branchprotection.
   106                              unmanaged: false
   107                      # Admins overrides whether protections apply to admins if set.
   108                      enforce_admins: false
   109                      # Exclude specifies a set of regular expressions which identify branches
   110                      # that should be excluded from the protection policy, mutually exclusive with Include
   111                      exclude:
   112                          - ""
   113                      # Include specifies a set of regular expressions which identify branches
   114                      # that should be included from the protection policy, mutually exclusive with Exclude
   115                      include:
   116                          - ""
   117                      # Protect overrides whether branch protection is enabled if set.
   118                      protect: false
   119                      # RequireManuallyTriggeredJobs enforces a context presence when job runs conditionally, but not automatically,
   120                      # that results in params always_run: false, optional: false, and skip_if_only_change, run_if_changed not present.
   121                      require_manually_triggered_jobs: false
   122                      # RequiredLinearHistory enforces a linear commit Git history, which prevents anyone from pushing merge commits to a branch.
   123                      required_linear_history: false
   124                      # RequiredPullRequestReviews specifies github approval/review criteria.
   125                      required_pull_request_reviews:
   126                          # BypassRestrictions appends users/teams that are allowed to bypass PR restrictions
   127                          bypass_pull_request_allowances:
   128                              teams:
   129                                  - ""
   130                              users:
   131                                  - ""
   132                          # DismissStale overrides whether new commits automatically dismiss old reviews if set
   133                          dismiss_stale_reviews: false
   134                          # DismissalRestrictions appends users/teams that are allowed to merge
   135                          dismissal_restrictions:
   136                              teams:
   137                                  - ""
   138                              users:
   139                                  - ""
   140                          # RequireOwners overrides whether CODEOWNERS must approve PRs if set
   141                          require_code_owner_reviews: false
   142                          # Approvals overrides the number of approvals required if set
   143                          required_approving_review_count: 0
   144                      # RequiredStatusChecks configures github contexts
   145                      required_status_checks:
   146                          # Contexts appends required contexts that must be green to merge
   147                          contexts:
   148                              - ""
   149                          # Strict overrides whether new commits in the base branch require updating the PR if set
   150                          strict: false
   151                      # Restrictions limits who can merge
   152                      restrictions:
   153                          apps:
   154                              - ""
   155                          teams:
   156                              - ""
   157                          users:
   158                              - ""
   159                      # Unmanaged makes us not manage the branchprotection.
   160                      unmanaged: false
   161              # RequireManuallyTriggeredJobs enforces a context presence when job runs conditionally, but not automatically,
   162              # that results in params always_run: false, optional: false, and skip_if_only_change, run_if_changed not present.
   163              require_manually_triggered_jobs: false
   164              # RequiredLinearHistory enforces a linear commit Git history, which prevents anyone from pushing merge commits to a branch.
   165              required_linear_history: false
   166              # RequiredPullRequestReviews specifies github approval/review criteria.
   167              required_pull_request_reviews:
   168                  # BypassRestrictions appends users/teams that are allowed to bypass PR restrictions
   169                  bypass_pull_request_allowances:
   170                      teams:
   171                          - ""
   172                      users:
   173                          - ""
   174                  # DismissStale overrides whether new commits automatically dismiss old reviews if set
   175                  dismiss_stale_reviews: false
   176                  # DismissalRestrictions appends users/teams that are allowed to merge
   177                  dismissal_restrictions:
   178                      teams:
   179                          - ""
   180                      users:
   181                          - ""
   182                  # RequireOwners overrides whether CODEOWNERS must approve PRs if set
   183                  require_code_owner_reviews: false
   184                  # Approvals overrides the number of approvals required if set
   185                  required_approving_review_count: 0
   186              # RequiredStatusChecks configures github contexts
   187              required_status_checks:
   188                  # Contexts appends required contexts that must be green to merge
   189                  contexts:
   190                      - ""
   191                  # Strict overrides whether new commits in the base branch require updating the PR if set
   192                  strict: false
   193              # Restrictions limits who can merge
   194              restrictions:
   195                  apps:
   196                      - ""
   197                  teams:
   198                      - ""
   199                  users:
   200                      - ""
   201              # Unmanaged makes us not manage the branchprotection.
   202              unmanaged: false
   203      # Protect overrides whether branch protection is enabled if set.
   204      protect: false
   205      # ProtectTested determines if branch protection rules are set for all repos
   206      # that Prow has registered jobs for, regardless of if those repos are in the
   207      # branch protection config.
   208      protect-tested-repos: false
   209      # ProtectReposWithOptionalJobs will make the Branchprotector manage required status
   210      # contexts on repositories that only have optional jobs (default: false)
   211      protect_repos_with_optional_jobs: false
   212      # RequireManuallyTriggeredJobs enforces a context presence when job runs conditionally, but not automatically,
   213      # that results in params always_run: false, optional: false, and skip_if_only_change, run_if_changed not present.
   214      require_manually_triggered_jobs: false
   215      # RequiredLinearHistory enforces a linear commit Git history, which prevents anyone from pushing merge commits to a branch.
   216      required_linear_history: false
   217      # RequiredPullRequestReviews specifies github approval/review criteria.
   218      required_pull_request_reviews:
   219          # BypassRestrictions appends users/teams that are allowed to bypass PR restrictions
   220          bypass_pull_request_allowances:
   221              teams:
   222                  - ""
   223              users:
   224                  - ""
   225          # DismissStale overrides whether new commits automatically dismiss old reviews if set
   226          dismiss_stale_reviews: false
   227          # DismissalRestrictions appends users/teams that are allowed to merge
   228          dismissal_restrictions:
   229              teams:
   230                  - ""
   231              users:
   232                  - ""
   233          # RequireOwners overrides whether CODEOWNERS must approve PRs if set
   234          require_code_owner_reviews: false
   235          # Approvals overrides the number of approvals required if set
   236          required_approving_review_count: 0
   237      # RequiredStatusChecks configures github contexts
   238      required_status_checks:
   239          # Contexts appends required contexts that must be green to merge
   240          contexts:
   241              - ""
   242          # Strict overrides whether new commits in the base branch require updating the PR if set
   243          strict: false
   244      # Restrictions limits who can merge
   245      restrictions:
   246          apps:
   247              - ""
   248          teams:
   249              - ""
   250          users:
   251              - ""
   252      # Unmanaged makes us not manage the branchprotection.
   253      unmanaged: false
   254  # The git sha from which this config was generated.
   255  config_version_sha: ' '
   256  deck:
   257      # AdditionalAllowedBuckets is a list of storage buckets to allow in artifact requests
   258      # (in addition to those listed in the GCSConfiguration).
   259      # Setting this field requires "SkipStoragePathValidation" also be set to `false`.
   260      additional_allowed_buckets:
   261          - ""
   262      # Branding of the frontend
   263      branding:
   264          # BackgroundColor is the color of the background.
   265          background_color: ' '
   266          # Favicon is the location of the favicon that will be loaded in deck.
   267          favicon: ' '
   268          # HeaderColor is the color of the header.
   269          header_color: ' '
   270          # Logo is the location of the logo that will be loaded in deck.
   271          logo: ' '
   272      # DefaultRerunAuthConfigs is a list of DefaultRerunAuthConfigEntry structures that specify who can
   273      # trigger job reruns. Reruns are based on whether the entry's org/repo or cluster matches with the
   274      # expected fields in the given configuration.
   275  
   276      # Each entry in the slice specifies Repo and Cluster regexp filter fields to
   277      # match against jobs and a corresponding RerunAuthConfig. The entry matching the job with the
   278      # most specification is for authentication purposes.
   279  
   280      # This field is smarter than the RerunAuthConfigs, because each
   281      # entry includes additional Cluster regexp information that the old format
   282      # does not consider.
   283  
   284      # This field is mutually exclusive with the RerunAuthConfigs field.
   285      default_rerun_auth_configs:
   286          - # Cluster matches against the cluster alias of the build cluster that the
   287            # ProwJob is configured to run on. Recall that ProwJobs default to running on
   288            # the "default" build cluster if they omit the "cluster" field in config.
   289            cluster: ' '
   290            # OrgRepo matches against the "org" or "org/repo" that the presubmit or postsubmit
   291            # is associated with. If the job is a periodic, extra_refs[0] is used. If the
   292            # job is a periodic without extra_refs, the empty string will be used.
   293            # If this field is omitted all jobs will match.
   294            repo: ' '
   295            # Config is the RerunAuthConfig to apply if the filter fields all match the
   296            # ProwJob. Note that when multiple entries match a ProwJob the entry with the
   297            # highest specification is used.
   298            rerun_auth_configs:
   299              # If AllowAnyone is set to true, any user can rerun the job
   300              allow_anyone: true
   301              # GitHubOrgs contains names of GitHub organizations whose members can rerun the job
   302              github_orgs:
   303                  - ""
   304              # GitHubTeams contains IDs of GitHub teams of users who can rerun the job
   305              # If you know the name of a team and the org it belongs to,
   306              # you can look up its ID using this command, where the team slug is the hyphenated name:
   307              # curl -H "Authorization: token <token>" "https://api.github.com/orgs/<org-name>/teams/<team slug>"
   308              # or, to list all teams in a given org, use
   309              # curl -H "Authorization: token <token>" "https://api.github.com/orgs/<org-name>/teams"
   310              github_team_ids:
   311                  - 0
   312              # GitHubTeamSlugs contains slugs and orgs of teams of users who can rerun the job
   313              github_team_slugs:
   314                  - org: ' '
   315                    slug: ' '
   316              # GitHubUsers contains names of individual users who can rerun the job
   317              github_users:
   318                  - ""
   319      # ExternalAgentLogs ensures external agents can expose
   320      # their logs in prow.
   321      external_agent_logs:
   322          - # Agent is an external prow agent that supports exposing
   323            # logs via deck.
   324            agent: ' '
   325            # SelectorString compiles into Selector at load time.
   326            selector: ' '
   327            # URLTemplateString compiles into URLTemplate at load time.
   328            url_template: ' '
   329      # GoogleAnalytics, if specified, include a Google Analytics tracking code on each page.
   330      google_analytics: ' '
   331      # HiddenRepos is a list of orgs and/or repos that should not be displayed by Deck.
   332      hidden_repos:
   333          - ""
   334      # RerunAuthConfigs is not deprecated but DefaultRerunAuthConfigs should be used in favor.
   335      # It remains a part of Deck for the purposes of backwards compatibility.
   336      # RerunAuthConfigs is a map of configs that specify who is able to trigger job reruns. The field
   337      # accepts a key of: `org/repo`, `org` or `*` (wildcard) to define what GitHub org (or repo) a particular
   338      # config applies to and a value of: `RerunAuthConfig` struct to define the users/groups authorized to rerun jobs.
   339      rerun_auth_configs:
   340          "":
   341              allow_anyone: true
   342              github_orgs:
   343                  - ""
   344              github_team_ids:
   345                  - 0
   346              github_team_slugs:
   347                  - org: ' '
   348                    slug: ' '
   349              github_users:
   350                  - ""
   351      # SkipStoragePathValidation skips validation that restricts artifact requests to specific buckets.
   352      # By default, buckets listed in the GCSConfiguration are automatically allowed.
   353      # Additional locations can be allowed via `AdditionalAllowedBuckets` fields.
   354      # When unspecified (nil), it defaults to false
   355      skip_storage_path_validation: false
   356      # Spyglass specifies which viewers will be used for which artifacts when viewing a job in Deck.
   357      spyglass:
   358          # If set, Announcement is used as a Go HTML template string to be displayed at the top of
   359          # each spyglass page. Using HTML in the template is acceptable.
   360          # Currently the only variable available is .ArtifactPath, which contains the GCS path for the job artifacts.
   361          announcement: ' '
   362          # BucketAliases permits a naive URL rewriting functionality.
   363          # Keys represent aliases and their values are the authoritative
   364          # bucket names they will be substituted with
   365          bucket_aliases:
   366              "": ""
   367          # GCSBrowserPrefix is used to generate a link to a human-usable GCS browser.
   368          # If left empty, the link will be not be shown. Otherwise, a GCS path (with no
   369          # prefix or scheme) will be appended to GCSBrowserPrefix and shown to the user.
   370          gcs_browser_prefix: ' '
   371          # GCSBrowserPrefixesByRepo are used to generate a link to a human-usable GCS browser.
   372          # They are mapped by org, org/repo or '*' which is the default value.
   373          # These are the most specific and will override GCSBrowserPrefixesByBucket if both are resolved.
   374          gcs_browser_prefixes:
   375              "": ""
   376          # GCSBrowserPrefixesByBucket are used to generate a link to a human-usable GCS browser.
   377          # They are mapped by bucket name or '*' which is the default value.
   378          # They will only be utilized if there is not a GCSBrowserPrefixesByRepo for the org/repo.
   379          gcs_browser_prefixes_by_bucket:
   380              "": ""
   381          # HidePRHistLink allows prow hiding PR History link from deck, this is handy especially for
   382          # prow instances that only serves gerrit.
   383          # This might become obsolete once https://github.com/kubernetes/test-infra/issues/24130 is fixed.
   384          hide_pr_history_link: true
   385          # Lenses is a list of lens configurations.
   386          lenses:
   387              - # Lens is the lens to use, alongside any lens-specific configuration.
   388                lens:
   389                  # Name is the name of the lens.
   390                  name: ' '
   391                # OptionalFiles is a list of regexes of file paths that will be provided to the lens if they are
   392                # present, but will not preclude the lens being rendered by their absence.
   393                # The list entries are ORed together, so if only one of them is present it will be provided to
   394                # the lens even if the others are not.
   395                optional_files:
   396                  - ""
   397                # RemoteConfig specifies how to access remote lenses.
   398                remote_config:
   399                  # The endpoint for the lense.
   400                  endpoint: ' '
   401                  # HideTitle defines if we will keep showing the title after lens loads.
   402                  hide_title: false
   403                  # Priority for lens ordering, lowest priority first.
   404                  priority: 0
   405                  # The endpoint for static resources.
   406                  static_root: ' '
   407                  # The human-readable title for the lens.
   408                  title: ' '
   409                # RequiredFiles is a list of regexes of file paths that must all be present for a lens to appear.
   410                # The list entries are ANDed together, i.e. all of them are required. You can achieve an OR
   411                # by using a pipe in a regex.
   412                required_files:
   413                  - ""
   414          # PRHistLinkTemplate is the template for constructing href of `PR History` button,
   415          # by default it's "/pr-history?org={{.Org}}&repo={{.Repo}}&pr={{.Number}}"
   416          pr_history_link_template: ' '
   417          # TestGridConfig is the path to the TestGrid config proto. If the path begins with
   418          # "gs://" it is assumed to be a GCS reference, otherwise it is read from the local filesystem.
   419          # If left blank, TestGrid links will not appear.
   420          testgrid_config: ' '
   421          # TestGridRoot is the root URL to the TestGrid frontend, e.g. "https://testgrid.k8s.io/".
   422          # If left blank, TestGrid links will not appear.
   423          testgrid_root: ' '
   424          # Viewers is deprecated, prefer Lenses instead.
   425          # Viewers was a map of Regexp strings to viewer names that defines which sets
   426          # of artifacts need to be consumed by which viewers. It is copied in to Lenses at load time.
   427          viewers:
   428              "": null
   429      # TideUpdatePeriod specifies how often Deck will fetch status from Tide. Defaults to 10s.
   430      tide_update_period: 0s
   431  # DefaultJobTimeout this is default deadline for prow jobs. This value is used when
   432  # no timeout is configured at the job level. This value is set to 24 hours.
   433  default_job_timeout: 0s
   434  # DisabledClusters holds a list of disabled build cluster names. The same context names will be ignored while
   435  # Prow components load the kubeconfig files.
   436  disabled_clusters:
   437      - ""
   438  # Gangway contains configurations needed by the the Prow API server of the
   439  # same name. It encodes an allowlist of API clients and what kinds of Prow
   440  # Jobs they are authorized to trigger.
   441  gangway:
   442      # AllowedApiClients encodes identifying information about API clients
   443      # (AllowedApiClient). An AllowedApiClient has authority to trigger a subset
   444      # of Prow Jobs.
   445      allowed_api_clients:
   446          - # AllowedJobsFilters contains information about what kinds of Prow jobs this
   447            # API client is authorized to trigger.
   448            allowed_jobs_filters:
   449              - tenant_id: ' '
   450            # ApiClientGcp contains GoogleCloudPlatform details about a web API client.
   451            # We currently only support GoogleCloudPlatform but other cloud vendors are
   452            # possible as additional fields in this struct.
   453            gcp:
   454              # EndpointApiConsumerNumber is the expected value of the
   455              # x-endpoint-api-consumer-number HTTP metadata header. Typically this
   456              # encodes the GCP Project number value, which uniquely identifies a GCP
   457              # Project.
   458              endpoint_api_consumer_number: ' '
   459              # EndpointApiConsumerType is the expected value of the
   460              # x-endpoint-api-consumer-type HTTP metadata header. Typically this will be
   461              # "PROJECT".
   462              endpoint_api_consumer_type: ' '
   463  gerrit:
   464      allowed_presubmit_trigger_re: ' '
   465      # DeckURL is the root URL of Deck. This is used to construct links to
   466      # job runs for a given CL.
   467      deck_url: ' '
   468      org_repos_config: null
   469      # TickInterval is how often we do a sync with bound gerrit instance.
   470      tick_interval: 0s
   471  # GitHubOptions allows users to control how prow applications display GitHub website links.
   472  github:
   473      # LinkURLFromConfig is the string representation of the link_url config parameter.
   474      # This config parameter allows users to override the default GitHub link url for all plugins.
   475      # If this option is not set, we assume "https://github.com".
   476      link_url: ' '
   477  github_reporter:
   478      # JobTypesToReport is used to determine which type of prowjob
   479      # should be reported to github.
   480  
   481      # defaults to both presubmit and postsubmit jobs.
   482      job_types_to_report:
   483          - ""
   484      # NoCommentRepos is a list of orgs and org/repos for which failure report
   485      # comments should not be maintained. Status contexts will still be written.
   486      no_comment_repos:
   487          - ""
   488      # SummaryCommentRepos is a list of orgs and org/repos for which failure report
   489      # comments is only sent when all jobs from current SHA are finished. Status
   490      # contexts will still be written.
   491      summary_comment_repos:
   492          - ""
   493  horologium:
   494      # TickInterval is the interval in which we check if new jobs need to be
   495      # created. Defaults to one minute.
   496      tick_interval: 0s
   497  in_repo_config:
   498      # AllowedClusters is a list of allowed clusternames that can be used for jobs on
   499      # a given repo. All clusters that are allowed for the specific repo, its org or
   500      # globally can be used.
   501      allowed_clusters:
   502          "": null
   503      # Enabled describes whether InRepoConfig is enabled for a given repository. This can
   504      # be set globally, per org or per repo using '*', 'org' or 'org/repo' as key. The
   505      # narrowest match always takes precedence.
   506      enabled:
   507          "": false
   508  jenkins_operators:
   509      - # JobURLTemplateString compiles into JobURLTemplate at load time.
   510        job_url_template: ' '
   511        # LabelSelectorString compiles into LabelSelector at load time.
   512        # If set, this option needs to match --label-selector used by
   513        # the desired jenkins-operator. This option is considered
   514        # invalid when provided with a single jenkins-operator config.
   515  
   516        # For label selector syntax, see below:
   517        # https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors
   518        label_selector: ' '
   519        # ReportTemplateString compiles into ReportTemplate at load time.
   520        report_template: ' '
   521        # ReportTemplateStrings is a mapping of template comments.
   522        # Use `org/repo`, `org` or `*` as a key.
   523        report_templates:
   524          "": ""
   525  # LogLevel enables dynamically updating the log level of the
   526  # standard logger that is used by all prow components.
   527  
   528  # Valid values:
   529  
   530  # "debug", "info", "warn", "warning", "error", "fatal", "panic"
   531  
   532  # Defaults to "info".
   533  log_level: ' '
   534  # ManagedWebhooks contains information about all github repositories and organizations which are using
   535  # non-global Hmac token.
   536  managed_webhooks:
   537      # Controls whether org/repo invitation for prow bot should be automatically
   538      # accepted or not. Only admin level invitations related to orgs and repos
   539      # in the managed_webhooks config will be accepted and all other invitations
   540      # will be left pending.
   541      auto_accept_invitation: false
   542      org_repo_config:
   543          "":
   544              token_created_after: "0001-01-01T00:00:00Z"
   545      respect_legacy_global_token: false
   546  # Moonraker contains configurations for Moonraker, such as the client
   547  # timeout to use for all Prow services that need to send requests to
   548  # Moonraker.
   549  moonraker:
   550      client_timeout: 0s
   551  # OwnersDirDenylist is used to configure regular expressions matching directories
   552  # to ignore when searching for OWNERS{,_ALIAS} files in a repo.
   553  owners_dir_denylist:
   554      # Default configures a default denylist for all repos (or orgs).
   555      # Some directories like ".git", "_output" and "vendor/.*/OWNERS"
   556      # are already preconfigured to be denylisted, and need not be included here.
   557      default:
   558          - ""
   559      # By default, some directories like ".git", "_output" and "vendor/.*/OWNERS"
   560      # are preconfigured to be denylisted.
   561      # If set, IgnorePreconfiguredDefaults will not add these preconfigured directories
   562      # to the denylist.
   563      ignore_preconfigured_defaults: true
   564      # Repos configures a directory denylist per repo (or org).
   565      repos:
   566          "": null
   567  plank:
   568      # BuildClusterStatusFile is an optional field used to specify the blob storage location
   569      # to publish cluster status information.
   570      # e.g. gs://my-bucket/cluster-status.json
   571      build_cluster_status_file: ' '
   572      # DefaultDecorationConfigEntries is used to populate DefaultDecorationConfigs.
   573  
   574      # Each entry in the slice specifies Repo and Cluster regexp filter fields to
   575      # match against jobs and a corresponding DecorationConfig. All entries that
   576      # match a job are used. Later matching entries override the fields of earlier
   577      # matching entries.
   578  
   579      # This field is smarter than the DefaultDecorationConfigsMap, because each
   580      # entry includes additional Cluster regexp information that the old format
   581      # does not consider.
   582  
   583      # This field is mutually exclusive with the DefaultDecorationConfigsMap field.
   584      default_decoration_config_entries:
   585          - # Cluster matches against the cluster alias of the build cluster that the
   586            # ProwJob is configured to run on. Recall that ProwJobs default to running on
   587            # the "default" build cluster if they omit the "cluster" field in config.
   588            cluster: ' '
   589            # Config is the DecorationConfig to apply if the filter fields all match the
   590            # ProwJob. Note that when multiple entries match a ProwJob they are all used
   591            # by sequentially merging with later entries overriding fields from earlier
   592            # entries.
   593            config:
   594              # BloblessFetch tells Prow to avoid fetching objects when cloning using
   595              # the --filter=blob:none flag.
   596              blobless_fetch: false
   597              # CensorSecrets enables censoring output logs and artifacts.
   598              censor_secrets: false
   599              # CensoringOptions exposes options for censoring output logs and artifacts.
   600              censoring_options:
   601                  # CensoringBufferSize is the size in bytes of the buffer allocated for every file
   602                  # being censored. We want to keep as little of the file in memory as possible in
   603                  # order for censoring to be reasonably performant in space. However, to guarantee
   604                  # that we censor every instance of every secret, our buffer size must be at least
   605                  # two times larger than the largest secret we are about to censor. While that size
   606                  # is the smallest possible buffer we could use, if the secrets being censored are
   607                  # small, censoring will not be performant as the number of I/O actions per file
   608                  # would increase. If unset, defaults to 10MiB.
   609                  censoring_buffer_size: 0
   610                  # CensoringConcurrency is the maximum number of goroutines that should be censoring
   611                  # artifacts and logs at any time. If unset, defaults to 10.
   612                  censoring_concurrency: 0
   613                  # ExcludeDirectories are directories which should not have their content censored. If
   614                  # present, content in these directories will not be censored even if the directory also
   615                  # matches a glob in IncludeDirectories. Entries in this list are relative to $ARTIFACTS,
   616                  # and are parsed with the go-zglob library, allowing for globbed matches.
   617                  exclude_directories:
   618                      - ""
   619                  # IncludeDirectories are directories which should have their content censored. If
   620                  # present, only content in these directories will be censored. Entries in this list
   621                  # are relative to $ARTIFACTS and are parsed with the go-zglob library, allowing for
   622                  # globbed matches.
   623                  include_directories:
   624                      - ""
   625              # CookieFileSecret is the name of a kubernetes secret that contains
   626              # a git http.cookiefile, which should be used during the cloning process.
   627              cookiefile_secret: ""
   628              # DefaultMemoryRequest is the default requested memory on a test container.
   629              # If SetLimitEqualsMemoryRequest is also true then the Limit will also be
   630              # set the same as this request. Could be overridden by memory request
   631              # defined explicitly on prowjob.
   632              default_memory_request: "0"
   633              # DefaultServiceAccountName is the name of the Kubernetes service account
   634              # that should be used by the pod if one is not specified in the podspec.
   635              default_service_account_name: ""
   636              # FsGroup defines special supplemental group ID used in all containers in a Pod.
   637              # This allows to change the ownership of particular volumes by kubelet.
   638              # This field will not override the existing ProwJob's PodSecurityContext.
   639              # Equivalent to PodSecurityContext's FsGroup
   640              fs_group: 0
   641              # GCSConfiguration holds options for pushing logs and
   642              # artifacts to GCS from a job.
   643              gcs_configuration:
   644                  # Bucket is the bucket to upload to, it can be:
   645                  # * a GCS bucket: with gs:// prefix
   646                  # * a S3 bucket: with s3:// prefix
   647                  # * a GCS bucket: without a prefix (deprecated, it's discouraged to use Bucket without prefix please add the gs:// prefix)
   648                  bucket: ' '
   649                  # CompressFileTypes specify file types that should be gzipped prior to upload.
   650                  # Matching files will be compressed prior to upload, and the content-encoding on these files will be set to gzip.
   651                  # GCS will transcode these gzipped files transparently when viewing. See: https://cloud.google.com/storage/docs/transcoding
   652                  # Example: "txt", "json"
   653                  # Use "*" for all
   654                  compress_file_types:
   655                      - ""
   656                  # DefaultOrg is omitted from GCS paths when using the
   657                  # legacy or simple strategy
   658                  default_org: ' '
   659                  # DefaultRepo is omitted from GCS paths when using the
   660                  # legacy or simple strategy
   661                  default_repo: ' '
   662                  # JobURLPrefix holds the baseURL under which the jobs output can be viewed.
   663                  # If unset, this will be derived based on org/repo from the job_url_prefix_config.
   664                  job_url_prefix: ' '
   665                  # LocalOutputDir specifies a directory where files should be copied INSTEAD of uploading to blob storage.
   666                  # This option is useful for testing jobs that use the pod-utilities without actually uploading.
   667                  local_output_dir: ' '
   668                  # MediaTypes holds additional extension media types to add to Go's
   669                  # builtin's and the local system's defaults. This maps extensions
   670                  # to media types, for example: MediaTypes["log"] = "text/plain"
   671                  mediaTypes:
   672                      "": ""
   673                  # PathPrefix is an optional path that follows the
   674                  # bucket name and comes before any structure
   675                  path_prefix: ' '
   676                  # PathStrategy dictates how the org and repo are used
   677                  # when calculating the full path to an artifact in GCS
   678                  path_strategy: ' '
   679              # GCSCredentialsSecret is the name of the Kubernetes secret
   680              # that holds GCS push credentials.
   681              gcs_credentials_secret: ""
   682              # GitHubAPIEndpoints are the endpoints of GitHub APIs.
   683              github_api_endpoints:
   684                  - ""
   685              # GitHubAppID is the ID of GitHub App, which is going to be used for fetching a private
   686              # repository.
   687              github_app_id: ' '
   688              # GitHubAppPrivateKeySecret is a Kubernetes secret that contains the GitHub App private key,
   689              # which is going to be used for fetching a private repository.
   690              github_app_private_key_secret:
   691                  # Key is the key of the corresponding kubernetes secret that
   692                  # holds the value of the GitHub App private key.
   693                  key: ' '
   694                  # Name is the name of a kubernetes secret.
   695                  name: ' '
   696              # GracePeriod is how long the pod utilities will wait
   697              # after sending SIGINT to send SIGKILL when aborting
   698              # a job. Only applicable if decorating the PodSpec.
   699              grace_period: 0s
   700              # OauthTokenSecret is a Kubernetes secret that contains the OAuth token,
   701              # which is going to be used for fetching a private repository.
   702              oauth_token_secret:
   703                  # Key is the key of the corresponding kubernetes secret that
   704                  # holds the value of the OAuth token.
   705                  key: ' '
   706                  # Name is the name of a kubernetes secret.
   707                  name: ' '
   708              # PodPendingTimeout defines how long the controller will wait to perform garbage
   709              # collection on pending pods. Specific for OrgRepo or Cluster. If not set, it has a fallback inside plank field.
   710              pod_pending_timeout: 0s
   711              # PodRunningTimeout defines how long the controller will wait to abort a prowjob pod
   712              # stuck in running state. Specific for OrgRepo or Cluster. If not set, it has a fallback inside plank field.
   713              pod_running_timeout: 0s
   714              # PodUnscheduledTimeout defines how long the controller will wait to abort a prowjob
   715              # stuck in an unscheduled state. Specific for OrgRepo or Cluster. If not set, it has a fallback inside plank field.
   716              pod_unscheduled_timeout: 0s
   717              # Resources holds resource requests and limits for utility
   718              # containers used to decorate a PodSpec.
   719              resources:
   720                  clonerefs:
   721                      claims:
   722                          - name: ' '
   723                      limits:
   724                          "": "0"
   725                      requests:
   726                          "": "0"
   727                  initupload:
   728                      claims:
   729                          - name: ' '
   730                      limits:
   731                          "": "0"
   732                      requests:
   733                          "": "0"
   734                  place_entrypoint:
   735                      claims:
   736                          - name: ' '
   737                      limits:
   738                          "": "0"
   739                      requests:
   740                          "": "0"
   741                  sidecar:
   742                      claims:
   743                          - name: ' '
   744                      limits:
   745                          "": "0"
   746                      requests:
   747                          "": "0"
   748              # RunAsGroup defines GID of process in all containers running in a Pod.
   749              # This field will not override the existing ProwJob's PodSecurityContext.
   750              # Equivalent to PodSecurityContext's RunAsGroup
   751              run_as_group: 0
   752              # RunAsUser defines UID for process in all containers running in a Pod.
   753              # This field will not override the existing ProwJob's PodSecurityContext.
   754              # Equivalent to PodSecurityContext's RunAsUser
   755              run_as_user: 0
   756              # S3CredentialsSecret is the name of the Kubernetes secret
   757              # that holds blob storage push credentials.
   758              s3_credentials_secret: ""
   759              # SetLimitEqualsMemoryRequest sets memory limit equal to request.
   760              set_limit_equals_memory_request: false
   761              # SkipCloning determines if we should clone source code in the
   762              # initcontainers for jobs that specify refs
   763              skip_cloning: false
   764              # SSHHostFingerprints are the fingerprints of known SSH hosts
   765              # that the cloning process can trust.
   766              # Create with ssh-keyscan [-t rsa] host
   767              ssh_host_fingerprints:
   768                  - ""
   769              # SSHKeySecrets are the names of Kubernetes secrets that contain
   770              # SSK keys which should be used during the cloning process.
   771              ssh_key_secrets:
   772                  - ""
   773              # Timeout is how long the pod utilities will wait
   774              # before aborting a job with SIGINT.
   775              timeout: 0s
   776              # UploadIgnoresInterrupts causes sidecar to ignore interrupts for the upload process in
   777              # hope that the test process exits cleanly before starting an upload.
   778              upload_ignores_interrupts: false
   779              # UtilityImages holds pull specs for utility container
   780              # images used to decorate a PodSpec.
   781              utility_images:
   782                  # CloneRefs is the pull spec used for the clonerefs utility
   783                  clonerefs: ' '
   784                  # Entrypoint is the pull spec used for the entrypoint utility
   785                  entrypoint: ' '
   786                  # InitUpload is the pull spec used for the initupload utility
   787                  initupload: ' '
   788                  # sidecar is the pull spec used for the sidecar utility
   789                  sidecar: ' '
   790            # OrgRepo matches against the "org" or "org/repo" that the presubmit or postsubmit
   791            # is associated with. If the job is a periodic, extra_refs[0] is used. If the
   792            # job is a periodic without extra_refs, the empty string will be used.
   793            # If this field is omitted all jobs will match.
   794            repo: ' '
   795      # DefaultDecorationConfigsMap is a mapping from 'org', 'org/repo', or the
   796      # literal string '*', to the default decoration config to use for that key.
   797      # The '*' key matches all jobs. (Periodics use extra_refs[0] for matching
   798      # if present.)
   799  
   800      # This field is mutually exclusive with the DefaultDecorationConfigEntries field.
   801      default_decoration_configs:
   802          "":
   803              # BloblessFetch tells Prow to avoid fetching objects when cloning using
   804              # the --filter=blob:none flag.
   805              blobless_fetch: false
   806              # CensorSecrets enables censoring output logs and artifacts.
   807              censor_secrets: false
   808              # CensoringOptions exposes options for censoring output logs and artifacts.
   809              censoring_options:
   810                  # CensoringBufferSize is the size in bytes of the buffer allocated for every file
   811                  # being censored. We want to keep as little of the file in memory as possible in
   812                  # order for censoring to be reasonably performant in space. However, to guarantee
   813                  # that we censor every instance of every secret, our buffer size must be at least
   814                  # two times larger than the largest secret we are about to censor. While that size
   815                  # is the smallest possible buffer we could use, if the secrets being censored are
   816                  # small, censoring will not be performant as the number of I/O actions per file
   817                  # would increase. If unset, defaults to 10MiB.
   818                  censoring_buffer_size: 0
   819                  # CensoringConcurrency is the maximum number of goroutines that should be censoring
   820                  # artifacts and logs at any time. If unset, defaults to 10.
   821                  censoring_concurrency: 0
   822                  # ExcludeDirectories are directories which should not have their content censored. If
   823                  # present, content in these directories will not be censored even if the directory also
   824                  # matches a glob in IncludeDirectories. Entries in this list are relative to $ARTIFACTS,
   825                  # and are parsed with the go-zglob library, allowing for globbed matches.
   826                  exclude_directories:
   827                      - ""
   828                  # IncludeDirectories are directories which should have their content censored. If
   829                  # present, only content in these directories will be censored. Entries in this list
   830                  # are relative to $ARTIFACTS and are parsed with the go-zglob library, allowing for
   831                  # globbed matches.
   832                  include_directories:
   833                      - ""
   834              # CookieFileSecret is the name of a kubernetes secret that contains
   835              # a git http.cookiefile, which should be used during the cloning process.
   836              cookiefile_secret: ""
   837              # DefaultMemoryRequest is the default requested memory on a test container.
   838              # If SetLimitEqualsMemoryRequest is also true then the Limit will also be
   839              # set the same as this request. Could be overridden by memory request
   840              # defined explicitly on prowjob.
   841              default_memory_request: "0"
   842              # DefaultServiceAccountName is the name of the Kubernetes service account
   843              # that should be used by the pod if one is not specified in the podspec.
   844              default_service_account_name: ""
   845              # FsGroup defines special supplemental group ID used in all containers in a Pod.
   846              # This allows to change the ownership of particular volumes by kubelet.
   847              # This field will not override the existing ProwJob's PodSecurityContext.
   848              # Equivalent to PodSecurityContext's FsGroup
   849              fs_group: 0
   850              # GCSConfiguration holds options for pushing logs and
   851              # artifacts to GCS from a job.
   852              gcs_configuration:
   853                  # Bucket is the bucket to upload to, it can be:
   854                  # * a GCS bucket: with gs:// prefix
   855                  # * a S3 bucket: with s3:// prefix
   856                  # * a GCS bucket: without a prefix (deprecated, it's discouraged to use Bucket without prefix please add the gs:// prefix)
   857                  bucket: ' '
   858                  # CompressFileTypes specify file types that should be gzipped prior to upload.
   859                  # Matching files will be compressed prior to upload, and the content-encoding on these files will be set to gzip.
   860                  # GCS will transcode these gzipped files transparently when viewing. See: https://cloud.google.com/storage/docs/transcoding
   861                  # Example: "txt", "json"
   862                  # Use "*" for all
   863                  compress_file_types:
   864                      - ""
   865                  # DefaultOrg is omitted from GCS paths when using the
   866                  # legacy or simple strategy
   867                  default_org: ' '
   868                  # DefaultRepo is omitted from GCS paths when using the
   869                  # legacy or simple strategy
   870                  default_repo: ' '
   871                  # JobURLPrefix holds the baseURL under which the jobs output can be viewed.
   872                  # If unset, this will be derived based on org/repo from the job_url_prefix_config.
   873                  job_url_prefix: ' '
   874                  # LocalOutputDir specifies a directory where files should be copied INSTEAD of uploading to blob storage.
   875                  # This option is useful for testing jobs that use the pod-utilities without actually uploading.
   876                  local_output_dir: ' '
   877                  # MediaTypes holds additional extension media types to add to Go's
   878                  # builtin's and the local system's defaults. This maps extensions
   879                  # to media types, for example: MediaTypes["log"] = "text/plain"
   880                  mediaTypes:
   881                      "": ""
   882                  # PathPrefix is an optional path that follows the
   883                  # bucket name and comes before any structure
   884                  path_prefix: ' '
   885                  # PathStrategy dictates how the org and repo are used
   886                  # when calculating the full path to an artifact in GCS
   887                  path_strategy: ' '
   888              # GCSCredentialsSecret is the name of the Kubernetes secret
   889              # that holds GCS push credentials.
   890              gcs_credentials_secret: ""
   891              # GitHubAPIEndpoints are the endpoints of GitHub APIs.
   892              github_api_endpoints:
   893                  - ""
   894              # GitHubAppID is the ID of GitHub App, which is going to be used for fetching a private
   895              # repository.
   896              github_app_id: ' '
   897              # GitHubAppPrivateKeySecret is a Kubernetes secret that contains the GitHub App private key,
   898              # which is going to be used for fetching a private repository.
   899              github_app_private_key_secret:
   900                  # Key is the key of the corresponding kubernetes secret that
   901                  # holds the value of the GitHub App private key.
   902                  key: ' '
   903                  # Name is the name of a kubernetes secret.
   904                  name: ' '
   905              # GracePeriod is how long the pod utilities will wait
   906              # after sending SIGINT to send SIGKILL when aborting
   907              # a job. Only applicable if decorating the PodSpec.
   908              grace_period: 0s
   909              # OauthTokenSecret is a Kubernetes secret that contains the OAuth token,
   910              # which is going to be used for fetching a private repository.
   911              oauth_token_secret:
   912                  # Key is the key of the corresponding kubernetes secret that
   913                  # holds the value of the OAuth token.
   914                  key: ' '
   915                  # Name is the name of a kubernetes secret.
   916                  name: ' '
   917              # PodPendingTimeout defines how long the controller will wait to perform garbage
   918              # collection on pending pods. Specific for OrgRepo or Cluster. If not set, it has a fallback inside plank field.
   919              pod_pending_timeout: 0s
   920              # PodRunningTimeout defines how long the controller will wait to abort a prowjob pod
   921              # stuck in running state. Specific for OrgRepo or Cluster. If not set, it has a fallback inside plank field.
   922              pod_running_timeout: 0s
   923              # PodUnscheduledTimeout defines how long the controller will wait to abort a prowjob
   924              # stuck in an unscheduled state. Specific for OrgRepo or Cluster. If not set, it has a fallback inside plank field.
   925              pod_unscheduled_timeout: 0s
   926              # Resources holds resource requests and limits for utility
   927              # containers used to decorate a PodSpec.
   928              resources:
   929                  clonerefs:
   930                      claims:
   931                          - name: ' '
   932                      limits:
   933                          "": "0"
   934                      requests:
   935                          "": "0"
   936                  initupload:
   937                      claims:
   938                          - name: ' '
   939                      limits:
   940                          "": "0"
   941                      requests:
   942                          "": "0"
   943                  place_entrypoint:
   944                      claims:
   945                          - name: ' '
   946                      limits:
   947                          "": "0"
   948                      requests:
   949                          "": "0"
   950                  sidecar:
   951                      claims:
   952                          - name: ' '
   953                      limits:
   954                          "": "0"
   955                      requests:
   956                          "": "0"
   957              # RunAsGroup defines GID of process in all containers running in a Pod.
   958              # This field will not override the existing ProwJob's PodSecurityContext.
   959              # Equivalent to PodSecurityContext's RunAsGroup
   960              run_as_group: 0
   961              # RunAsUser defines UID for process in all containers running in a Pod.
   962              # This field will not override the existing ProwJob's PodSecurityContext.
   963              # Equivalent to PodSecurityContext's RunAsUser
   964              run_as_user: 0
   965              # S3CredentialsSecret is the name of the Kubernetes secret
   966              # that holds blob storage push credentials.
   967              s3_credentials_secret: ""
   968              # SetLimitEqualsMemoryRequest sets memory limit equal to request.
   969              set_limit_equals_memory_request: false
   970              # SkipCloning determines if we should clone source code in the
   971              # initcontainers for jobs that specify refs
   972              skip_cloning: false
   973              # SSHHostFingerprints are the fingerprints of known SSH hosts
   974              # that the cloning process can trust.
   975              # Create with ssh-keyscan [-t rsa] host
   976              ssh_host_fingerprints:
   977                  - ""
   978              # SSHKeySecrets are the names of Kubernetes secrets that contain
   979              # SSK keys which should be used during the cloning process.
   980              ssh_key_secrets:
   981                  - ""
   982              # Timeout is how long the pod utilities will wait
   983              # before aborting a job with SIGINT.
   984              timeout: 0s
   985              # UploadIgnoresInterrupts causes sidecar to ignore interrupts for the upload process in
   986              # hope that the test process exits cleanly before starting an upload.
   987              upload_ignores_interrupts: false
   988              # UtilityImages holds pull specs for utility container
   989              # images used to decorate a PodSpec.
   990              utility_images:
   991                  # CloneRefs is the pull spec used for the clonerefs utility
   992                  clonerefs: ' '
   993                  # Entrypoint is the pull spec used for the entrypoint utility
   994                  entrypoint: ' '
   995                  # InitUpload is the pull spec used for the initupload utility
   996                  initupload: ' '
   997                  # sidecar is the pull spec used for the sidecar utility
   998                  sidecar: ' '
   999      # JobQueueCapacities is an optional field used to define job queue max concurrency.
  1000      # Each job can be assigned to a specific queue which has its own max concurrency,
  1001      # independent from the job's name. Setting the concurrency to 0 will block any job
  1002      # from being triggered. Setting the concurrency to a negative value will remove the
  1003      # limit. An example use case would be easier scheduling of jobs using boskos resources.
  1004      # This mechanism is separate from ProwJob's MaxConcurrency setting.
  1005      job_queue_capacities:
  1006          "": 0
  1007      # JobURLPrefixConfig is the host and path prefix under which job details
  1008      # will be viewable. Use `org/repo`, `org` or `*`as key and an url as value.
  1009      job_url_prefix_config:
  1010          "": ""
  1011      # JobURLTemplateString compiles into JobURLTemplate at load time.
  1012      job_url_template: ' '
  1013      # JobURLPrefixDisableAppendStorageProvider disables that the storageProvider is
  1014      # automatically appended to the JobURLPrefix.
  1015      jobURLPrefixDisableAppendStorageProvider: true
  1016      # PodPendingTimeout defines how long the controller will wait to perform a garbage
  1017      # collection on pending pods. Defaults to 10 minutes.
  1018      pod_pending_timeout: 0s
  1019      # PodRunningTimeout defines how long the controller will wait to abort a prowjob pod
  1020      # stuck in running state. Defaults to two days.
  1021      pod_running_timeout: 0s
  1022      # PodUnscheduledTimeout defines how long the controller will wait to abort a prowjob
  1023      # stuck in an unscheduled state. Defaults to 5 minutes.
  1024      pod_unscheduled_timeout: 0s
  1025      # ReportTemplateString compiles into ReportTemplate at load time.
  1026      report_template: ' '
  1027      # ReportTemplateStrings is a mapping of template comments.
  1028      # Use `org/repo`, `org` or `*` as a key.
  1029      report_templates:
  1030          "": ""
  1031  # PodNamespace is the namespace in the cluster that prow
  1032  # components will use for looking up Pods owned by ProwJobs.
  1033  # The namespace needs to exist and will not be created by prow.
  1034  # Defaults to "default".
  1035  pod_namespace: ' '
  1036  # ProwJobDefaultEntries holds a list of defaults for specific values
  1037  # Each entry in the slice specifies Repo and CLuster regexp filter fields to
  1038  # match against the jobs and a corresponding ProwJobDefault . All entries that
  1039  # match a job are used. Later matching entries override the fields of earlier
  1040  # matching entires.
  1041  prowjob_default_entries:
  1042      - # Cluster matches against the cluster alias of the build cluster that the
  1043        # ProwJob is configured to run on. Recall that ProwJobs default to running on
  1044        # the "default" build cluster if they omit the "cluster" field in config.
  1045        cluster: ' '
  1046        # Config is the ProwJobDefault to apply if the filter fields all match the
  1047        # ProwJob. Note that when multiple entries match a ProwJob they are all used
  1048        # by sequentially merging with later entries overriding fields from earlier
  1049        # entries.
  1050        config:
  1051          resultstore_config:
  1052              # ProjectID specifies the ResultStore InvocationAttributes.ProjectID, used
  1053              # for various quota and GUI access control purposes.
  1054              # In practice, it is generally the same as the Google Cloud Project ID or
  1055              # number of the job's GCS storage bucket.
  1056              # Required to upload results to ResultStore.
  1057              project_id: ' '
  1058          tenant_id: ' '
  1059        # OrgRepo matches against the "org" or "org/repo" that the presubmit or postsubmit
  1060        # is associated with. If the job is a periodic, extra_refs[0] is used. If the
  1061        # job is a periodic without extra_refs, the empty string will be used.
  1062        # If this field is omitted all jobs will match.
  1063        repo: ' '
  1064  # ProwJobNamespace is the namespace in the cluster that prow
  1065  # components will use for looking up ProwJobs. The namespace
  1066  # needs to exist and will not be created by prow.
  1067  # Defaults to "default".
  1068  prowjob_namespace: ' '
  1069  # Pub/Sub Subscriptions that we want to listen to.
  1070  pubsub_subscriptions:
  1071      "": null
  1072  # PubSubTriggers defines Pub/Sub Subscriptions that we want to listen to,
  1073  # can be used to restrict build cluster on a topic.
  1074  pubsub_triggers:
  1075      - allowed_clusters:
  1076          - ""
  1077        max_outstanding_messages: 0
  1078        project: ' '
  1079        topics:
  1080          - ""
  1081  # PushGateway is a prometheus push gateway.
  1082  push_gateway:
  1083      # Endpoint is the location of the prometheus pushgateway
  1084      # where prow will push metrics to.
  1085      endpoint: ' '
  1086      # Interval specifies how often prow will push metrics
  1087      # to the pushgateway. Defaults to 1m.
  1088      interval: 0s
  1089      # ServeMetrics tells if or not the components serve metrics.
  1090      serve_metrics: false
  1091  # Scheduler contains configuration for the additional scheduler.
  1092  # It has to be explicitly enabled.
  1093  scheduler:
  1094      enabled: true
  1095      # Scheduling strategies
  1096      failover:
  1097          # ClusterMappings maps a cluster to another one. It is used when we
  1098          # want to schedule a ProJob to a cluster other than the one it was
  1099          # configured to in the first place.
  1100          mappings:
  1101              "": ""
  1102  sinker:
  1103      # ExcludeClusters are build clusters that don't want to be managed by sinker.
  1104      exclude_clusters:
  1105          - ""
  1106      # MaxPodAge is how old a Pod can be before it is garbage-collected.
  1107      # Defaults to one day.
  1108      max_pod_age: 0s
  1109      # MaxProwJobAge is how old a ProwJob can be before it is garbage-collected.
  1110      # Defaults to one week.
  1111      max_prowjob_age: 0s
  1112      # ResyncPeriod is how often the controller will perform a garbage
  1113      # collection. Defaults to one hour.
  1114      resync_period: 0s
  1115      # TerminatedPodTTL is how long a Pod can live after termination before it is
  1116      # garbage collected.
  1117      # Defaults to matching MaxPodAge.
  1118      terminated_pod_ttl: 0s
  1119  slack_reporter_configs:
  1120      "":
  1121          channel: ' '
  1122          host: ' '
  1123          job_states_to_report:
  1124              - ""
  1125          job_types_to_report:
  1126              - ""
  1127          report: false
  1128          report_template: ' '
  1129  # StatusErrorLink is the url that will be used for jenkins prowJobs that can't be
  1130  # found, or have another generic issue. The default that will be used if this is not set
  1131  # is: https://github.com/kubernetes/test-infra/issues.
  1132  status_error_link: ' '
  1133  tide:
  1134      # BatchSizeLimitMap is a key/value pair of an org or org/repo as the key and
  1135      # integer batch size limit as the value. Use "*" as key to set a global default.
  1136      # Special values:
  1137      # 0 => unlimited batch size
  1138      # -1 => batch merging disabled :(
  1139      batch_size_limit:
  1140          "": 0
  1141      # BlockerLabel is an optional label that is used to identify merge blocking
  1142      # GitHub issues.
  1143      # Leave this blank to disable this feature and save 1 API token per sync loop.
  1144      blocker_label: ' '
  1145      # TideContextPolicyOptions defines merge options for context. If not set it will infer
  1146      # the required and optional contexts from the prow jobs configured and use the github
  1147      # combined status; otherwise it may apply the branch protection setting or let user
  1148      # define their own options in case branch protection is not used.
  1149      context_options:
  1150          # Infer required and optional jobs from Branch Protection configuration
  1151          from-branch-protection: false
  1152          optional-contexts:
  1153              - ""
  1154          # GitHub Orgs
  1155          orgs:
  1156              "":
  1157                  # Infer required and optional jobs from Branch Protection configuration
  1158                  from-branch-protection: false
  1159                  optional-contexts:
  1160                      - ""
  1161                  repos:
  1162                      "":
  1163                          branches:
  1164                              "":
  1165                                  # Infer required and optional jobs from Branch Protection configuration
  1166                                  from-branch-protection: false
  1167                                  optional-contexts:
  1168                                      - ""
  1169                                  required-contexts:
  1170                                      - ""
  1171                                  required-if-present-contexts:
  1172                                      - ""
  1173                                  # whether to consider unknown contexts optional (skip) or required.
  1174                                  skip-unknown-contexts: false
  1175                          # Infer required and optional jobs from Branch Protection configuration
  1176                          from-branch-protection: false
  1177                          optional-contexts:
  1178                              - ""
  1179                          required-contexts:
  1180                              - ""
  1181                          required-if-present-contexts:
  1182                              - ""
  1183                          # whether to consider unknown contexts optional (skip) or required.
  1184                          skip-unknown-contexts: false
  1185                  required-contexts:
  1186                      - ""
  1187                  required-if-present-contexts:
  1188                      - ""
  1189                  # whether to consider unknown contexts optional (skip) or required.
  1190                  skip-unknown-contexts: false
  1191          required-contexts:
  1192              - ""
  1193          required-if-present-contexts:
  1194              - ""
  1195          # whether to consider unknown contexts optional (skip) or required.
  1196          skip-unknown-contexts: false
  1197      # DisplayAllQueriesInStatus controls if Tide should mention all queries in the status it
  1198      # creates. The default is to only mention the one to which we are closest (Calculated
  1199      # by total number of requirements - fulfilled number of requirements).
  1200      display_all_tide_queries_in_status: true
  1201      gerrit:
  1202          queries:
  1203              - filters:
  1204                  branches:
  1205                      - ""
  1206                  excluded_branches:
  1207                      - ""
  1208                  opt_in_by_default: true
  1209                opt_out_help: true
  1210                org: ' '
  1211                repos:
  1212                  - ""
  1213      # A key/value pair of an org/repo as the key and Go template to override
  1214      # the default merge commit title and/or message. Template is passed the
  1215      # PullRequest struct (prow/github/types.go#PullRequest)
  1216      merge_commit_template:
  1217          "":
  1218              body: ' '
  1219              title: ' '
  1220      # MergeLabel is an optional label that is used to identify PRs that should
  1221      # always be merged with all individual commits from the PR.
  1222      # Leave this blank to disable this feature.
  1223      merge_label: ' '
  1224      # A key/value pair of an org/repo as the key and merge method to override
  1225      # the default method of merge. Valid options are squash, rebase, and merge.
  1226      merge_method:
  1227          "": ' '
  1228      # PRStatusBaseURL is the base URL for the PR status page.
  1229      # This is used to link to a merge requirements overview
  1230      # in the tide status context.
  1231      # Will be deprecated on June 2020.
  1232      pr_status_base_url: ' '
  1233      # PRStatusBaseURLs is the base URL for the PR status page
  1234      # mapped by org or org/repo level.
  1235      pr_status_base_urls:
  1236          "": ""
  1237      # PrioritizeExistingBatches configures on org or org/repo level if Tide should continue
  1238      # testing pre-existing batches instead of immediately including new PRs as they become
  1239      # eligible. Continuing on an old batch allows to re-use all existing test results whereas
  1240      # starting a new one requires to start new instances of all tests.
  1241      # Use '*' as key to set this globally. Defaults to true.
  1242      prioritize_existing_batches:
  1243          "": false
  1244      # Priority is an ordered list of sets of labels that would be prioritized before other PRs
  1245      # PRs should match all labels contained in a set to be prioritized. The first entry has
  1246      # the highest priority.
  1247      priority:
  1248          - labels:
  1249              - ""
  1250      # Queries represents a list of GitHub search queries that collectively
  1251      # specify the set of PRs that meet merge requirements.
  1252      queries:
  1253          - author: ' '
  1254            excludedBranches:
  1255              - ""
  1256            excludedRepos:
  1257              - ""
  1258            includedBranches:
  1259              - ""
  1260            labels:
  1261              - ""
  1262            milestone: ' '
  1263            missingLabels:
  1264              - ""
  1265            orgs:
  1266              - ""
  1267            repos:
  1268              - ""
  1269            reviewApprovedRequired: true
  1270      # RebaseLabel is an optional label that is used to identify PRs that should
  1271      # always be rebased and merged.
  1272      # Leave this blank to disable this feature.
  1273      rebase_label: ' '
  1274      # SquashLabel is an optional label that is used to identify PRs that should
  1275      # always be squash merged.
  1276      # Leave this blank to disable this feature.
  1277      squash_label: ' '
  1278      # StatusUpdatePeriod specifies how often Tide will update GitHub status contexts.
  1279      # Defaults to the value of SyncPeriod.
  1280      status_update_period: 0s
  1281      # SyncPeriod specifies how often Tide will sync jobs with GitHub. Defaults to 1m.
  1282      sync_period: 0s
  1283      # URL for tide status contexts.
  1284      # We can consider allowing this to be set separately for separate repos, or
  1285      # allowing it to be a template.
  1286      target_url: ' '
  1287      # TargetURLs is a map from "*", <org>, or <org/repo> to the URL for the tide status contexts.
  1288      # The most specific key that matches will be used.
  1289      # This field is mutually exclusive with TargetURL.
  1290      target_urls:
  1291          "": ""