> ## Documentation Index
> Fetch the complete documentation index at: https://trunk-4cab4936-mintlify-4e02f272.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Update the merge queue.



## OpenAPI

````yaml /openapi.json post /updateQueue
openapi: 3.1.0
info:
  title: Trunk APIs
  version: 1.0.0
  license:
    name: UNLICENSED
servers:
  - url: https://api.trunk.io/v1
security: []
paths:
  /updateQueue:
    post:
      summary: Update the merge queue.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                repo:
                  type: object
                  properties:
                    host:
                      type: string
                    owner:
                      type: string
                    name:
                      type: string
                  required:
                    - host
                    - owner
                    - name
                targetBranch:
                  type: string
                  description: The branch that the merge queue is targeting.
                state:
                  type: string
                  enum:
                    - running
                    - paused
                    - draining
                  description: >-
                    The desired state of the merge queue. Valid values: RUNNING,
                    PAUSED, DRAINING.
                concurrency:
                  type: integer
                  minimum: 1
                  maximum: 4294967295
                  description: >-
                    The number of PRs or batches of PRs the queue can test at
                    once.
                bisectionConcurrency:
                  type: integer
                  minimum: 1
                  maximum: 4294967295
                  description: >-
                    The number of tests the merge queue can run when bisecting a
                    batch to figure out what PR in the batch failed.
                testingTimeoutMinutes:
                  type: integer
                  minimum: 0
                  maximum: 4294967295
                  description: >-
                    The maximum number of minutes the merge queue will wait for
                    tests to complete before timing out. Set to 0 to disable the
                    timeout.
                pendingFailureDepth:
                  type: integer
                  minimum: 0
                  maximum: 4294967295
                  description: >-
                    When enabled, PRs that fail tests will wait for the
                    specified number of PRs below them to finish testing before
                    getting kicked from the queue. This works best with
                    optimistic merging enabled. Set to 0 to disable.
                canOptimisticallyMerge:
                  type: boolean
                  description: >-
                    When enabled, a PR that passes tests will also cause any PR
                    ahead of it in the queue to also get marked as passing,
                    since tests have passed with those commits.
                batch:
                  type: boolean
                  description: >-
                    Enable or disable batching. When enabled, the merge queue
                    will group PRs into batches for testing.
                batchingMaxWaitTimeMinutes:
                  type: integer
                  minimum: 1
                  maximum: 4294967295
                  description: >-
                    The maximum number of minutes the merge queue will wait to
                    collect PRs into a batch before starting tests.
                batchingMinSize:
                  type: integer
                  minimum: 1
                  maximum: 4294967295
                  description: The minimum number of PRs required to form a batch.
                mode:
                  type: string
                  enum:
                    - single
                    - parallel
                  description: >-
                    The queue mode. 'single' processes PRs one at a time.
                    'parallel' processes multiple PRs concurrently.
                commentsEnabled:
                  type: boolean
                  description: Whether or not Merge Queue will post GitHub comments on PRs.
                commandsEnabled:
                  type: boolean
                  description: >-
                    Whether or not users are allowed to submit PRs to the merge
                    queue by commenting `/trunk merge`.
                createPrsForTestingBranches:
                  type: boolean
                  description: >-
                    Whether or not the merge queue will create PRs for its
                    testing branches, allowing CI to run on them.
                directMergeMode:
                  type: string
                  enum:
                    - 'off'
                    - always
                  description: >-
                    Allow PRs to merge directly into the target branch if
                    they're up to date with the target branch when submitting
                    them to the queue instead of running tests on them in the
                    merge queue.
                optimizationMode:
                  type: string
                  enum:
                    - 'off'
                    - bisection_skip_redundant_tests
                  description: >-
                    The optimization strategy for the merge queue. 'off'
                    disables optimizations. 'bisection_skip_redundant_tests'
                    uses bisection and skips redundant tests.
                mergeMethod:
                  type: string
                  enum:
                    - merge_commit
                    - squash
                    - rebase
                  description: >-
                    The Git merge method used when merging PRs into the target
                    branch. Valid values: merge_commit, squash, rebase.
                testBranchConstructionMode:
                  type: string
                  enum:
                    - rename_temp_branch
                    - push_new_branch_from_temp
                  description: >-
                    How the merge queue builds the branch CI runs on. Valid
                    values: rename_temp_branch, push_new_branch_from_temp.
                statusCheckEnabled:
                  type: boolean
                  description: >-
                    Post a GitHub status check on PRs with the status of the PR
                    in the merge queue.
                extensionEnabled:
                  type: boolean
                  description: >-
                    Whether the Trunk Merge Queue browser extension is enabled
                    (shown) for this repository.
                requiredStatuses:
                  type: array
                  items:
                    type: string
                  description: >-
                    Allows setting the statuses that must pass when the merge
                    queue performs tests in order for a PR to merge. Setting the
                    statuses here will override GitHub branch protection
                    settings or your `.trunk/trunk.yaml`.
                deleteRequiredStatuses:
                  type: boolean
                  description: >-
                    Removes a manually specified set of required statuses. After
                    this, the statuses that must pass when the merge queue
                    performs testing will be pulled from either GitHub branch
                    protection settings or your `.trunk/trunk.yaml`.
                allowedBotSubmitters:
                  type: array
                  items:
                    type: string
                  description: >-
                    Sets the GitHub logins of bot/app accounts (e.g.
                    `dependabot[bot]`) whose PRs are allowed to be submitted to
                    the merge queue. This replaces the existing set. Pass an
                    empty list to clear all allowed bot submitters.
                batchingRules:
                  type: array
                  items:
                    type: object
                    properties:
                      targetPattern:
                        type: string
                        minLength: 1
                        description: >-
                          The impacted-target label this rule applies to.
                          Matched exactly, or as a prefix when it ends in a
                          single `*` (e.g. `//db/migrations:*`). A `*` anywhere
                          other than the last character is rejected, and `*` on
                          its own is rejected — a rule matching every target is
                          a queue-wide setting rather than a rule.
                      policy:
                        type: string
                        enum:
                          - isolate
                        description: >-
                          What to do with a PR whose impacted targets match.
                          `isolate` tests it on its own, exactly as `/trunk
                          merge --no-batch` does.
                    required:
                      - targetPattern
                      - policy
                    description: >-
                      A rule that changes how a PR is batched based on the build
                      targets it impacts. Evaluated from the impacted targets
                      uploaded for the PR's head commit each time the queue
                      forms batches, so it follows pushes that add or remove a
                      matching target. A PR that reports impacting all targets
                      matches no rule.
                  description: >-
                    Sets how PRs are batched based on the build targets they
                    impact, for queues in parallel mode that upload impacted
                    targets. This replaces the existing set of rules. Pass an
                    empty list to clear all batching rules.
                enqueueingLabel:
                  type: string
                  minLength: 1
                  description: >-
                    The GitHub label whose application enqueues a PR onto the
                    merge queue.
                labelCommandsEnabled:
                  type: boolean
                  description: >-
                    Whether label-based commands (e.g. enqueue/dequeue via
                    labels) are enabled on the merge queue.
                stateLabelsEnabled:
                  type: boolean
                  description: >-
                    Whether the merge queue applies labels to PRs reflecting
                    their merge queue state.
                notReadyTimeoutHours:
                  type: integer
                  minimum: 0
                  maximum: 4294967295
                  description: >-
                    The number of hours a PR can remain submitted but not
                    mergeable before it is removed from the queue. Set to 0 to
                    disable the timeout.
              required:
                - repo
                - targetBranch
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  state:
                    type: string
                    enum:
                      - running
                      - paused
                      - draining
                      - switching_modes
                    description: >-
                      The state of the merge queue. See
                      https://docs.trunk.io/merge-queue/administration/advanced-settings#merge-queue-state
                      for the full description of each state.
                  branch:
                    type: string
                  concurrency:
                    type: number
                  testingTimeoutMinutes:
                    type: number
                  mode:
                    type: string
                    enum:
                      - single
                      - parallel
                  canOptimisticallyMerge:
                    type: boolean
                  pendingFailureDepth:
                    type: number
                  batch:
                    type: boolean
                  batchingMaxWaitTimeMinutes:
                    type: number
                  batchingMinSize:
                    type: number
                  createPrsForTestingBranches:
                    type: boolean
                  commentsEnabled:
                    type: boolean
                  commandsEnabled:
                    type: boolean
                  statusCheckEnabled:
                    type: boolean
                  extensionEnabled:
                    type: boolean
                    description: >-
                      Whether the Trunk Merge Queue browser extension is enabled
                      (shown) for this repository.
                  bisectionConcurrency:
                    type: number
                  requiredStatuses:
                    type: array
                    items:
                      type: string
                  allowedBotSubmitters:
                    type: array
                    items:
                      type: string
                    description: >-
                      The GitHub logins of bot/app accounts (e.g.
                      `dependabot[bot]`) whose PRs are allowed to be submitted
                      to the merge queue.
                  batchingRules:
                    type: array
                    items:
                      type: object
                      properties:
                        targetPattern:
                          type: string
                          minLength: 1
                          description: >-
                            The impacted-target label this rule applies to.
                            Matched exactly, or as a prefix when it ends in a
                            single `*` (e.g. `//db/migrations:*`). A `*`
                            anywhere other than the last character is rejected,
                            and `*` on its own is rejected — a rule matching
                            every target is a queue-wide setting rather than a
                            rule.
                        policy:
                          type: string
                          enum:
                            - isolate
                          description: >-
                            What to do with a PR whose impacted targets match.
                            `isolate` tests it on its own, exactly as `/trunk
                            merge --no-batch` does.
                      required:
                        - targetPattern
                        - policy
                      description: >-
                        A rule that changes how a PR is batched based on the
                        build targets it impacts. Evaluated from the impacted
                        targets uploaded for the PR's head commit each time the
                        queue forms batches, so it follows pushes that add or
                        remove a matching target. A PR that reports impacting
                        all targets matches no rule.
                    description: >-
                      Rules changing how PRs are batched based on the build
                      targets they impact.
                  directMergeMode:
                    type: string
                    enum:
                      - 'off'
                      - always
                    description: >-
                      Controls whether PRs can skip the queue's test run and
                      merge directly when already up to date with the target
                      branch. See
                      https://docs.trunk.io/merge-queue/administration/advanced-settings#direct-merge-to-main
                      for details.
                  optimizationMode:
                    type: string
                    enum:
                      - 'off'
                      - bisection_skip_redundant_tests
                    description: >-
                      The optimization strategy for the merge queue. `off` — no
                      optimizations. See
                      https://docs.trunk.io/merge-queue/optimizations/batching#test-caching-during-bisection
                      for details on `bisection_skip_redundant_tests`.
                  mergeMethod:
                    type: string
                    enum:
                      - merge_commit
                      - squash
                      - rebase
                    description: >-
                      The Git strategy used to merge a PR into the target
                      branch. See
                      https://docs.trunk.io/merge-queue/administration/advanced-settings#merge-method
                      for details.
                  testBranchConstructionMode:
                    type: string
                    enum:
                      - rename_temp_branch
                      - push_new_branch_from_temp
                    description: >-
                      How the merge queue turns its built temporary branch into
                      the `trunk-merge` branch CI runs on. `rename_temp_branch`
                      renames the ref. `push_new_branch_from_temp` creates the
                      final ref at the temporary branch's head commit and
                      deletes the temporary ref, which needs no rename
                      permission — use it when an organization- or
                      enterprise-level ruleset targets these branches, since
                      GitHub's rename restriction is the one rule an exempt
                      bypass actor cannot lift.
                  enqueueingLabel:
                    type: string
                    description: >-
                      The GitHub label whose application enqueues a PR onto the
                      merge queue.
                  labelCommandsEnabled:
                    type: boolean
                    description: >-
                      Whether label-based commands (e.g. enqueue/dequeue via
                      labels) are enabled on the merge queue.
                  stateLabelsEnabled:
                    type: boolean
                    description: >-
                      Whether the merge queue applies labels to PRs reflecting
                      their merge queue state.
                  notReadyTimeoutHours:
                    type: number
                required:
                  - state
                  - branch
                  - concurrency
                  - testingTimeoutMinutes
                  - mode
                  - canOptimisticallyMerge
                  - pendingFailureDepth
                  - batch
                  - batchingMaxWaitTimeMinutes
                  - batchingMinSize
                  - createPrsForTestingBranches
                  - commentsEnabled
                  - commandsEnabled
                  - statusCheckEnabled
                  - extensionEnabled
                  - bisectionConcurrency
                  - requiredStatuses
                  - allowedBotSubmitters
                  - batchingRules
                  - directMergeMode
                  - optimizationMode
                  - mergeMethod
                  - testBranchConstructionMode
                  - enqueueingLabel
                  - labelCommandsEnabled
                  - stateLabelsEnabled
                  - notReadyTimeoutHours
        '400':
          description: Bad Request
          content:
            application/plain-text:
              schema:
                type: string
        '401':
          description: Unauthorized
          content:
            application/plain-text:
              schema:
                type: string
        '404':
          description: Not Found
          content:
            application/plain-text:
              schema:
                type: string
        '500':
          description: Internal Server Error
          content:
            application/plain-text:
              schema:
                type: string
      security:
        - ApiKeyAuth: []
components:
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-token

````