# 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: ".*"
          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: "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
      }
    }
  }
}
