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

# Read current GitHub delivery context

> Returns compact, exact-head PR, review, actual GitHub required-check, and configured workflow evidence after current issue authorization. Selection prefers an open PR link, then the latest updated link, then the highest PR number. Required checks union active base-branch rulesets and classic branch protection and read check-runs and legacy commit statuses for the exact head SHA. Partial or unavailable collection and missing evidence remain unknown. With required-check reads disabled, state disabled and aggregate none do not set partial; when enabled, partial or unavailable collection or aggregate unknown sets partial. Required-check reads are disabled by default and require the server-only ATOLL_GITHUB_REQUIRED_CHECKS_READ_ENABLED=1 flag. Pending review/workflow state with null provenance means no current observation and does not by itself set partial. Disabled verification stops new projections. Older-head observations are historical. This endpoint is separate from heartbeat signals and does not perform writes or agent dispatch.



## OpenAPI

````yaml /openapi.json get /api/orgs/{id}/issues/{issueId}/external-operational-signals
openapi: 3.1.0
info:
  title: Atoll API
  version: 1.0.0
  description: >-
    REST API for Atoll project management, agent collaboration, strategy
    tracking, and integrations.
servers:
  - url: https://atollhq.com
    description: Production
security:
  - bearerAuth: []
tags:
  - name: Authentication
  - name: Organizations
  - name: Projects
  - name: Project access
  - name: Issues
  - name: Issue details
  - name: Milestones
  - name: Artifacts
  - name: Strategy
  - name: Members and agents
  - name: Planning
  - name: Setup
  - name: Integrations and billing
  - name: Notifications and public
  - name: Private inbox
  - name: Agent executions
  - name: Human attention
paths:
  /api/orgs/{id}/issues/{issueId}/external-operational-signals:
    get:
      tags:
        - Issues
      summary: Read current GitHub delivery context
      description: >-
        Returns compact, exact-head PR, review, actual GitHub required-check,
        and configured workflow evidence after current issue authorization.
        Selection prefers an open PR link, then the latest updated link, then
        the highest PR number. Required checks union active base-branch rulesets
        and classic branch protection and read check-runs and legacy commit
        statuses for the exact head SHA. Partial or unavailable collection and
        missing evidence remain unknown. With required-check reads disabled,
        state disabled and aggregate none do not set partial; when enabled,
        partial or unavailable collection or aggregate unknown sets partial.
        Required-check reads are disabled by default and require the server-only
        ATOLL_GITHUB_REQUIRED_CHECKS_READ_ENABLED=1 flag. Pending
        review/workflow state with null provenance means no current observation
        and does not by itself set partial. Disabled verification stops new
        projections. Older-head observations are historical. This endpoint is
        separate from heartbeat signals and does not perform writes or agent
        dispatch.
      operationId: get_api_orgs_id_issues_issueId_external_operational_signals
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
        - name: issueId
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Current issue delivery context
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IssueDeliveryContextResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
      security:
        - bearerAuth: []
components:
  schemas:
    IssueDeliveryContextResponse:
      type: object
      required:
        - deliveryContext
      properties:
        deliveryContext:
          oneOf:
            - $ref: '#/components/schemas/IssueDeliveryContext'
            - type: 'null'
      additionalProperties: false
    IssueDeliveryContext:
      type: object
      additionalProperties: false
      required:
        - repository
        - pull_request
        - review
        - workflows
        - required_checks
        - freshness
        - strongest_blocker
        - partial
      properties:
        repository:
          oneOf:
            - type: 'null'
            - type: object
              additionalProperties: false
              required:
                - id
                - name
              properties:
                id:
                  type: integer
                  minimum: 1
                name:
                  type: string
        pull_request:
          type: object
          additionalProperties: false
          description: >-
            The selected PR-link state is authoritative. If a same-head PR
            observation disagrees, observation/provider provenance is null,
            source_url falls back to the link URL, the observation is excluded
            from freshness, and partial is true.
          required:
            - number
            - title
            - url
            - state
            - head_sha
            - observed_at
            - provider_updated_at
            - provider_event_id
            - source_url
          properties:
            number:
              type: integer
              minimum: 1
            title:
              type:
                - string
                - 'null'
            url:
              type:
                - string
                - 'null'
              format: uri
            state:
              type: string
              enum:
                - open
                - closed
                - merged
              description: Authoritative issue_pr_links.pr_status for the selected PR link.
            head_sha:
              type:
                - string
                - 'null'
              pattern: ^[0-9a-fA-F]{40}$
            observed_at:
              type:
                - string
                - 'null'
              format: date-time
            provider_updated_at:
              type:
                - string
                - 'null'
              format: date-time
            provider_event_id:
              type:
                - string
                - 'null'
              maxLength: 255
            source_url:
              type:
                - string
                - 'null'
              format: uri
        review:
          oneOf:
            - type: 'null'
            - allOf:
                - $ref: '#/components/schemas/IssueDeliverySignalProvenance'
                - type: object
                  required:
                    - state
                  properties:
                    state:
                      type: string
                      enum:
                        - pending
                        - approved
                        - changes_requested
                      description: >-
                        Uses each reviewer's latest exact-head opinion. Change
                        requests win; approved means at least one effective
                        approval and no effective change request. This does not
                        prove required-review or branch-protection policy.
        workflows:
          type: array
          items:
            allOf:
              - $ref: '#/components/schemas/IssueDeliverySignalProvenance'
              - type: object
                required:
                  - name
                  - state
                  - required
                properties:
                  name:
                    type: string
                    maxLength: 255
                  state:
                    type: string
                    enum:
                      - pending
                      - passed
                      - failed
                      - cancelled
                    description: >-
                      success/neutral maps to passed; cancelled/stale/skipped
                      maps to cancelled; other supported terminal conclusions
                      map to failed. Pending with null provenance means no
                      observation exists.
                  required:
                    const: false
                    description: >-
                      Configured workflow evidence is not a GitHub
                      branch-protection required-check read.
        required_checks:
          type: object
          additionalProperties: false
          required:
            - state
            - aggregate
            - items
            - error_code
            - observed_at
          description: >-
            The union of active ruleset and classic branch-protection
            requirements for the PR base branch, evaluated against the exact
            head SHA. Collection is disabled by default and partial or
            unavailable evidence fails closed as unknown.
          properties:
            state:
              type: string
              enum:
                - disabled
                - complete
                - partial
                - unavailable
            aggregate:
              type: string
              enum:
                - none
                - pending
                - passed
                - failed
                - cancelled
                - unknown
            items:
              type: array
              maxItems: 200
              items:
                type: object
                additionalProperties: false
                required:
                  - context
                  - integration_id
                  - policy_sources
                  - state
                  - provider_state
                  - provider_conclusion
                  - url
                  - provider_updated_at
                properties:
                  context:
                    type: string
                    minLength: 1
                    maxLength: 255
                  integration_id:
                    type:
                      - integer
                      - 'null'
                    minimum: 1
                  policy_sources:
                    type: array
                    minItems: 1
                    maxItems: 2
                    uniqueItems: true
                    items:
                      type: string
                      enum:
                        - classic
                        - ruleset
                  state:
                    type: string
                    enum:
                      - pending
                      - passed
                      - failed
                      - cancelled
                      - unknown
                  provider_state:
                    type:
                      - string
                      - 'null'
                    maxLength: 64
                  provider_conclusion:
                    type:
                      - string
                      - 'null'
                    maxLength: 64
                  url:
                    type:
                      - string
                      - 'null'
                    format: uri
                    pattern: ^https://github[.]com/[^?#]+$
                  provider_updated_at:
                    type:
                      - string
                      - 'null'
                    format: date-time
            error_code:
              type:
                - string
                - 'null'
              maxLength: 80
              pattern: ^[a-z0-9][a-z0-9._:-]{0,79}$
            observed_at:
              type:
                - string
                - 'null'
              format: date-time
        freshness:
          type: object
          additionalProperties: false
          required:
            - observed_at
            - stale
          properties:
            observed_at:
              type:
                - string
                - 'null'
              format: date-time
              description: >-
                Newest accepted current-head observation. A disagreeing PR
                observation is excluded.
            stale:
              type: boolean
        strongest_blocker:
          type:
            - string
            - 'null'
          enum:
            - head_unknown
            - pull_request_closed
            - changes_requested
            - required_checks_failed
            - required_checks_cancelled
            - required_checks_pending
            - required_checks_unknown
            - workflows_failed
            - workflows_cancelled
            - workflows_pending
            - review_pending
            - null
        partial:
          type: boolean
          description: >-
            True when stable repository identity, head SHA, or the current PR
            observation is unavailable or disagrees with authoritative PR-link
            state, or when enabled required-check collection is partial or
            unavailable or its aggregate is unknown. With required-check reads
            disabled, state disabled and aggregate none do not set this field.
            Missing review/workflow observations alone do not set this field.
    Error:
      type: object
      description: >-
        Common error responses contain error. Shared missing-auth and
        unknown-API responses also contain a stable code.
      properties:
        error:
          type: string
        code:
          type: string
      required:
        - error
      examples:
        - error: Unauthorized
          code: unauthorized
        - error: Not found
          code: not_found
      additionalProperties: true
    IssueDeliverySignalProvenance:
      type: object
      required:
        - observed_at
        - provider_updated_at
        - provider_event_id
        - source_url
      properties:
        observed_at:
          type:
            - string
            - 'null'
          format: date-time
          description: Database receipt time.
        provider_updated_at:
          type:
            - string
            - 'null'
          format: date-time
        provider_event_id:
          type:
            - string
            - 'null'
          maxLength: 255
          description: >-
            Null with the other provenance fields when no current-head
            observation exists.
        source_url:
          type:
            - string
            - 'null'
          format: uri
  responses:
    Unauthorized:
      description: Missing or invalid authentication
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Forbidden:
      description: Authenticated but not allowed
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: Resource not found or not visible
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    ServerError:
      description: Unexpected server error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: sk_atoll_<key>

````