# Auto-generated by lucicfg.
# Do not modify manually.
#
# For the schema of this file, see Config message:
#   https://config.luci.app/schemas/projects:commit-queue.cfg

config_groups {
  name: "gerrit_repo"
  gerrit {
    url: "https://gerrit-review.googlesource.com"
    projects {
      name: "gerrit"
      ref_regexp: "refs/heads/master"
    }
  }
  verifiers {
    gerrit_cq_ability {
      committer_list: "all"
      dry_run_access_list: "all"
      new_patchset_run_access_list: "all"
    }
    tryjob {
      builders {
        name: "gerrit/try/Verify gerrit CL"
        location_filters {
          gerrit_host_regexp: ".*"
          gerrit_project_regexp: ".*"
          gerrit_ref_regexp: ".*"
          path_regexp: "polygerrit-ui/.+"
        }
        mode_allowlist: "DRY_RUN"
        mode_allowlist: "FULL_RUN"
        mode_allowlist: "NEW_PATCHSET_RUN"
      }
      retry_config {
        single_quota: 1
        global_quota: 2
        failure_weight: 100
        transient_failure_weight: 1
        timeout_weight: 100
      }
    }
  }
  post_actions {
    name: "success"
    conditions {
      mode: "DRY_RUN"
      statuses: SUCCEEDED
    }
    conditions {
      mode: "NEW_PATCHSET_RUN"
      statuses: SUCCEEDED
    }
    vote_gerrit_labels {
      votes {
        name: "Frontend-Verified"
        value: 1
      }
    }
  }
  post_actions {
    name: "failure"
    conditions {
      mode: "DRY_RUN"
      statuses: FAILED
      statuses: CANCELLED
    }
    conditions {
      mode: "NEW_PATCHSET_RUN"
      statuses: FAILED
      statuses: CANCELLED
    }
    vote_gerrit_labels {
      votes {
        name: "Frontend-Verified"
        value: -1
      }
    }
  }
}
config_groups {
  name: "git-repo_repo"
  gerrit {
    url: "https://gerrit-review.googlesource.com"
    projects {
      name: "git-repo"
      ref_regexp: "refs/heads/.+"
    }
  }
  verifiers {
    gerrit_cq_ability {
      committer_list: "googlers"
      dry_run_access_list: "all"
      new_patchset_run_access_list: "all"
    }
    tryjob {
      builders {
        name: "gerrit/try/Verify git-repo CL"
        mode_allowlist: "DRY_RUN"
        mode_allowlist: "FULL_RUN"
        mode_allowlist: "NEW_PATCHSET_RUN"
      }
      retry_config {
        single_quota: 1
        global_quota: 2
        failure_weight: 100
        transient_failure_weight: 1
        timeout_weight: 100
      }
    }
  }
}
config_groups {
  name: "git-repohooks_repo"
  gerrit {
    url: "https://gerrit-review.googlesource.com"
    projects {
      name: "git-repohooks"
      ref_regexp: "refs/heads/.+"
    }
  }
  verifiers {
    gerrit_cq_ability {
      committer_list: "googlers"
      dry_run_access_list: "all"
      new_patchset_run_access_list: "all"
    }
    tryjob {
      builders {
        name: "gerrit/try/Verify git-repohooks CL"
        mode_allowlist: "DRY_RUN"
        mode_allowlist: "FULL_RUN"
        mode_allowlist: "NEW_PATCHSET_RUN"
      }
      retry_config {
        single_quota: 1
        global_quota: 2
        failure_weight: 100
        transient_failure_weight: 1
        timeout_weight: 100
      }
    }
  }
}
config_groups {
  name: "luci-config_repo"
  gerrit {
    url: "https://gerrit-review.googlesource.com"
    projects {
      name: "luci-config"
      ref_regexp: "refs/heads/main"
    }
  }
  verifiers {
    gerrit_cq_ability {
      committer_list: "all"
    }
  }
}
config_groups {
  name: "luci-test_repo"
  gerrit {
    url: "https://gerrit-review.googlesource.com"
    projects {
      name: "luci-test"
      ref_regexp: "refs/heads/.+"
    }
  }
  verifiers {
    gerrit_cq_ability {
      committer_list: "project-gerrit-committers"
      dry_run_access_list: "all"
      new_patchset_run_access_list: "all"
    }
    tryjob {
      builders {
        name: "gerrit/try/Verify luci-test CL"
        mode_allowlist: "DRY_RUN"
        mode_allowlist: "FULL_RUN"
        mode_allowlist: "NEW_PATCHSET_RUN"
      }
      retry_config {
        single_quota: 1
        global_quota: 2
        failure_weight: 100
        transient_failure_weight: 1
        timeout_weight: 100
      }
    }
  }
}
