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

config_groups {
  name: "gerrit_repo"
  gerrit {
    url: "https://gerrit-review.googlesource.com"
    projects {
      name: "gerrit"
      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 gerrit 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-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-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
      }
    }
  }
}
