> ## 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.

# Get merge base

> Read the problem type, not only the status.

- 404 `https://entire.com/errors/git-read/ref-not-found`: a requested ref does not resolve on this placement. A new repository answers this until its first push.
- 404 `https://entire.com/errors/git-read/object-missing`: an object is absent on this placement. Retry.
- 404 `https://entire.com/errors/git-read/repo-gone`: the repository has no refs and the object is absent.
- 404 with no type: the token cannot read the repository, or the cause is none of the above.

On a GitHub mirror or a ref forwarded to its owner, a 404 reflects this placement's view, which can lag the owner. A caller that acts on a mirror must not treat that 404 as final.



## OpenAPI

````yaml https://aws-us-east-2.api.entire.io/api/v1/openapi.json?section=git get /git/repos/{repoId}/merge-base
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:
  /git/repos/{repoId}/merge-base:
    get:
      tags:
        - repositories
        - git-read
      summary: Get merge base
      description: >-
        Read the problem type, not only the status.


        - 404 `https://entire.com/errors/git-read/ref-not-found`: a requested
        ref does not resolve on this placement. A new repository answers this
        until its first push.

        - 404 `https://entire.com/errors/git-read/object-missing`: an object is
        absent on this placement. Retry.

        - 404 `https://entire.com/errors/git-read/repo-gone`: the repository has
        no refs and the object is absent.

        - 404 with no type: the token cannot read the repository, or the cause
        is none of the above.


        On a GitHub mirror or a ref forwarded to its owner, a 404 reflects this
        placement's view, which can lag the owner. A caller that acts on a
        mirror must not treat that 404 as final.
      operationId: getMergeBase
      parameters:
        - description: Repository ULID.
          in: path
          name: repoId
          required: true
          schema:
            description: Repository ULID.
            pattern: ^[0-9A-HJKMNP-TV-Z]{26}$
            type: string
        - description: Branch, tag, or commit SHA, optionally with a ^/~N revision suffix.
          explode: false
          in: query
          name: commitA
          required: true
          schema:
            description: >-
              Branch, tag, or commit SHA, optionally with a ^/~N revision
              suffix.
            minLength: 1
            type: string
        - description: Branch, tag, or commit SHA, optionally with a ^/~N revision suffix.
          explode: false
          in: query
          name: commitB
          required: true
          schema:
            description: >-
              Branch, tag, or commit SHA, optionally with a ^/~N revision
              suffix.
            minLength: 1
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MergeBaseResponse'
          description: OK
          headers:
            X-Entire-Replicas:
              schema:
                description: >-
                  Comma-separated base URIs of the nodes currently hosting this
                  repository.
                type: string
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorModel'
          description: Bad Request
        '401':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorModel'
          description: Unauthorized
        '403':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorModel'
          description: Forbidden
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorModel'
          description: Not Found
        '412':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorModel'
          description: Precondition Failed
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorModel'
          description: Unprocessable Entity
        '429':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorModel'
          description: Too Many Requests
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorModel'
          description: Internal Server Error
      security:
        - bearerAuth:
            - pull
components:
  schemas:
    MergeBaseResponse:
      additionalProperties: true
      properties:
        $schema:
          description: A URL to the JSON Schema for this object.
          examples:
            - >-
              https://aws-us-east-2.entire.io/api/v1/schemas/MergeBaseResponse.json
          format: uri
          readOnly: true
          type: string
        mergeBaseSHA:
          description: Commit SHA of the merge base.
          pattern: ^[0-9a-f]{40}$|^[0-9a-f]{64}$
          type: string
        resolvedSHAs:
          description: Resolved input ref SHAs in request order.
          items:
            type: string
          type:
            - array
            - 'null'
      required:
        - resolvedSHAs
      type: object
    ErrorModel:
      additionalProperties: true
      properties:
        $schema:
          description: A URL to the JSON Schema for this object.
          examples:
            - https://aws-us-east-2.entire.io/api/v1/schemas/ErrorModel.json
          format: uri
          readOnly: true
          type: string
        detail:
          description: >-
            A human-readable explanation specific to this occurrence of the
            problem.
          examples:
            - Property foo is required but is missing.
          type: string
        errors:
          description: Optional list of individual error details
          items:
            $ref: '#/components/schemas/ErrorDetail'
          type:
            - array
            - 'null'
        instance:
          description: >-
            A URI reference that identifies the specific occurrence of the
            problem.
          examples:
            - https://example.com/error-log/abc123
          format: uri
          type: string
        status:
          description: HTTP status code
          examples:
            - 400
          format: int64
          type: integer
        title:
          description: >-
            A short, human-readable summary of the problem type. This value
            should not change between occurrences of the error.
          examples:
            - Bad Request
          type: string
        type:
          default: about:blank
          description: A URI reference to human-readable documentation for the error.
          examples:
            - https://example.com/errors/example
          format: uri
          type: string
      type: object
    ErrorDetail:
      additionalProperties: true
      properties:
        location:
          description: >-
            Where the error occurred, e.g. 'body.items[3].tags' or
            'path.thing-id'
          type: string
        message:
          description: Error message text
          type: string
        value:
          description: The value at the given location
      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

````