> ## Documentation Index
> Fetch the complete documentation index at: https://docs.entire.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Merge a Trail (repo_id addressing)



## OpenAPI

````yaml https://aws-us-east-2.api.entire.io/api/v1/openapi.json?section=trails post /repos/{repo_id}/trails/{number}/merge
openapi: 3.1.0
info:
  title: Entire API
  version: 0.1.0
  description: >-
    Unified Entire API gateway. Aggregates the control plane and regional
    repository-operation services behind a single endpoint.
servers:
  - url: https://aws-us-east-2.api.entire.io/api/v1
security:
  - bearerAuth: []
tags:
  - name: search
    description: Operations under the /search surface.
  - name: semantic-search
    description: Operations under the /semantic-search surface.
  - name: brainstore
    description: Operations served by the brainstore service.
  - description: >-
      The authenticated caller's own cross-repo activity, commits, checkpoints,
      sessions, and recap.
    name: me
    x-group: Your activity
  - description: >-
      Residency-aware previews of the caller's surface, served under
      /experimental. Shapes may change without notice.
    name: experimental
  - description: >-
      Per-user settings: pinned and recent repos, diff view, and saved filter
      tabs.
    name: preferences
  - description: >-
      Repository discovery list, metadata, and headline rollups (summary,
      activity, contributors, agents).
    name: repos
  - description: >-
      Git browsing for a repo: commits, commit detail, branch compare, tree
      listings, raw file bytes, and branches.
    name: code
  - description: >-
      Checkpoint listing, resolution, LLM analysis, transcripts, and per-repo
      checkpoint status.
    name: checkpoints
    x-group: Checkpoints
  - description: >-
      Materialised sessions: listing, detail, transcripts, rename, and the
      public-share toggle.
    name: sessions
    x-group: Sessions
  - description: >-
      Repo dashboard aggregates under /overview: commit and checkpoint stats,
      contributor breakdowns, and session patterns.
    name: overview
  - description: Live ref-change stream for a repo (SSE).
    name: refs
    x-group: Ref events
  - description: >-
      Trails themselves: list, create, read, update, delete, plus per-repo
      counts, claimed branches, and the body-document ensure.
    name: trails
    x-group: Trails
  - description: >-
      What has happened on a trail: the merged timeline, the event stream, and
      who is watching (per trail, plus a repo-wide roll-up).
    name: trail-activity
    x-group: Activity
  - description: >-
      Conversation on a trail: discussions, their messages, and the live
      discussion-event stream.
    name: trail-discussions
    x-group: Discussions
  - description: >-
      Code review on a trail: review state, comments, diffs, reviewed files, and
      review re-runs.
    name: trail-reviews
    x-group: Reviews
  - description: >-
      Runner output on a trail: the latest result per configured runner, monitor
      results, and manual launches.
    name: trail-runs
  - description: >-
      Quality gates: repo gate definitions, gate settings, repo-authored monitor
      definitions, and a trail's gate evaluation.
    name: trail-gates
    x-group: Gates
  - description: >-
      Getting a trail landed: approval decisions, merge readiness, and the merge
      itself.
    name: trail-approvals
    x-group: Approvals
  - description: >-
      Trail attachment blobs: upload intent, completion, retrieval, and
      deletion.
    name: trail-attachments
  - description: Project-scoped Trails, and their owned repository Changes and discussions.
    name: projects
  - description: Agent-provenance ranking for a repo's code scopes.
    name: experts
    x-group: Experts
  - description: >-
      git-meta-compatible repo metadata read and write (git is the source of
      truth).
    name: git-meta
  - description: >-
      A project's versioned agents — what each runs (its own runner or an Entire
      preset), what it is called, the environment it runs in, the repositories
      it reviews and its trigger — and Entire's presets. Saving one runs
      nothing.
    name: agents
  - description: >-
      A project's saved, versioned Environments — where an agent runs: provider
      and sandbox lifetime — reusable across the project's repositories and
      agents. Configuration only: saving one provisions nothing.
    name: environments
  - description: >-
      Runs of a project's agents, each on one Change: starting one, the
      immutable snapshot each captured, status, output and results, retry and
      cancel.
    name: runs
  - description: >-
      Mutating repo configuration: runner, trail, public-sharing, and
      gate-enforcement settings (requires repo manage_settings for every forge).
    name: repo-settings
  - description: The caller's open pull requests across their repositories.
    name: pull-requests
  - description: 'Service-authed only: editor-document sync behind the trail body editor.'
    name: trails-internal
  - description: The runner OIDC issuer's discovery document and JWKS. Machine-consumed.
    name: runner-issuer
  - name: repositories
    x-group: Git
paths:
  /repos/{repo_id}/trails/{number}/merge:
    post:
      tags:
        - trail-approvals
      summary: Merge a Trail (repo_id addressing)
      operationId: trailsMergeSubmitByRepoID
      parameters:
        - description: 'Repo id: placement ULID or public repo_<group ULID>'
          in: path
          name: repo_id
          required: true
          schema:
            description: 'Repo id: placement ULID or public repo_<group ULID>'
            type: string
        - description: Trail number
          in: path
          name: number
          required: true
          schema:
            description: Trail number
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TrailMergeSubmitBody'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TrailMergeSubmitResponse'
          description: OK
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: Not Found
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: Conflict
        '412':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: Precondition Failed
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: Unprocessable Entity
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: Too Many Requests
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: Internal Server Error
        '502':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: Bad Gateway
        '503':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: Service Unavailable
      security:
        - oauth2: []
        - oidc: []
        - bearerAuth: []
components:
  schemas:
    TrailMergeSubmitBody:
      additionalProperties: false
      properties:
        $schema:
          description: A URL to the JSON Schema for this object.
          examples:
            - /api/v1/schemas/TrailMergeSubmitBody.json
          format: uri
          readOnly: true
          type: string
        bypass:
          type: boolean
        deleteBranch:
          description: >-
            Delete the native Trail's working branch after the merge, first
            moving the open and draft Trails based on it to the merged Trail's
            base, as the merger. Omitted uses the repository's
            deleteBranchOnMerge setting. Ignored for GitHub-backed Trails.
          type: boolean
        expectedHeadSha:
          type: string
      type: object
    TrailMergeSubmitResponse:
      additionalProperties: false
      properties:
        $schema:
          description: A URL to the JSON Schema for this object.
          examples:
            - /api/v1/schemas/TrailMergeSubmitResponse.json
          format: uri
          readOnly: true
          type: string
        branchDeleted:
          description: >-
            The Trail's working branch no longer exists after the merge. Always
            false for a GitHub-backed Trail, whose branch GitHub manages.
          type: boolean
        branchKeptReason:
          description: >-
            Why the native Trail's working branch was kept. Set only when
            branchDeleted is false; omitted for a GitHub-backed Trail.
            not_requested: the request sent deleteBranch false. disabled:
            deleteBranch was omitted and the repository's deleteBranchOnMerge
            setting is off. base: the branch is the Trail's base. stacked: an
            open or draft Trail based on the branch could not be moved to the
            merged Trail's base. claimed: another Trail took the branch name
            after the merge. moved: the branch moved past the merged head.
            protected: branch protection refused the delete. default_branch: the
            branch is the repository's default branch. failed: the delete, or
            moving the Trails based on the branch, could not run or did not
            succeed.
          enum:
            - not_requested
            - disabled
            - base
            - stacked
            - claimed
            - moved
            - protected
            - default_branch
            - failed
          type: string
        mergeCommitSha:
          description: >-
            Merge commit SHA; empty when the merge fast-forwarded or was already
            up to date
          type: string
        ok:
          type: boolean
      required:
        - ok
        - mergeCommitSha
        - branchDeleted
      type: object
    ApiError:
      additionalProperties: false
      properties:
        $schema:
          description: A URL to the JSON Schema for this object.
          examples:
            - /api/v1/schemas/ApiError.json
          format: uri
          readOnly: true
          type: string
        code:
          type: string
        detail:
          type: string
        error:
          type: string
      required:
        - error
      type: object
  securitySchemes:
    bearerAuth:
      bearerFormat: JWT
      description: >-
        Bearer token authorizing this operation's repository action. Each
        operation's security requirement names the resource action the token
        must be authorized for (pull or push).
      scheme: bearer
      type: http
    oauth2:
      description: OAuth 2.0 authorization code flow.
      flows:
        authorizationCode:
          authorizationUrl: https://us.auth.entire.io/authorize
          scopes:
            offline_access: Stay signed in and receive a refresh token.
            openid: Verify your identity.
          tokenUrl: https://us.auth.entire.io/oauth/token
      type: oauth2
    oidc:
      description: >-
        OpenID Connect discovery document:
        https://us.auth.entire.io/.well-known/openid-configuration
      openIdConnectUrl: https://us.auth.entire.io/.well-known/openid-configuration
      type: openIdConnect

````