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

# Dispatch pull request feedback to Aether

> Targets only a same-org Aether task that published this exact pull request. Requires membership in the owning organization of a task linked to this pull request — the task that published it or a task that reviewed it — and current GitHub access to the repository. 404 covers an unknown pull request, one linked to no organization the caller belongs to, and one whose GitHub access the caller has lost; the three are deliberately indistinguishable.



## OpenAPI

````yaml api-reference/openapi.account.json POST /pull-requests/{pullRequestID}/github/dispatch
openapi: 3.1.0
info:
  title: Aether Account & Integrations API
  version: 0.1.0
  description: >-
    Account, billing, and integration-management endpoints used by the Aether
    web app and CLI. Root-mounted; NOT part of the versioned /v1 contract.
servers:
  - url: https://api.runaether.dev
security:
  - bearerAuth: []
paths:
  /pull-requests/{pullRequestID}/github/dispatch:
    post:
      tags:
        - pull-requests
      summary: Dispatch pull request feedback to Aether
      description: >-
        Targets only a same-org Aether task that published this exact pull
        request. Requires membership in the owning organization of a task linked
        to this pull request — the task that published it or a task that
        reviewed it — and current GitHub access to the repository. 404 covers an
        unknown pull request, one linked to no organization the caller belongs
        to, and one whose GitHub access the caller has lost; the three are
        deliberately indistinguishable.
      operationId: dispatchPullRequestGithubFeedback
      parameters:
        - in: path
          name: pullRequestID
          required: true
          schema:
            format: uuid
            type: string
      requestBody:
        content:
          application/json:
            schema:
              discriminator:
                mapping:
                  all_feedback:
                    $ref: '#/components/schemas/TaskGitHubDispatchAllFeedbackInput'
                  ci_failure:
                    $ref: '#/components/schemas/TaskGitHubDispatchCiFailureInput'
                  review_thread:
                    $ref: '#/components/schemas/TaskGitHubDispatchReviewThreadInput'
                propertyName: kind
              oneOf:
                - $ref: '#/components/schemas/TaskGitHubDispatchCiFailureInput'
                - $ref: '#/components/schemas/TaskGitHubDispatchReviewThreadInput'
                - $ref: '#/components/schemas/TaskGitHubDispatchAllFeedbackInput'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskGitHubDispatchList'
          description: OK
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                anyOf:
                  - $ref: '#/components/schemas/ErrorResponse'
                  - $ref: '#/components/schemas/OrgAuthorizationErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Not Found
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Conflict
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unprocessable Entity
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal Server Error
        '502':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad Gateway
        '503':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Service Unavailable
components:
  schemas:
    TaskGitHubDispatchAllFeedbackInput:
      additionalProperties: false
      properties:
        kind:
          enum:
            - all_feedback
          type: string
      required:
        - kind
      type: object
    TaskGitHubDispatchCiFailureInput:
      additionalProperties: false
      properties:
        kind:
          enum:
            - ci_failure
          type: string
      required:
        - kind
      type: object
    TaskGitHubDispatchReviewThreadInput:
      additionalProperties: false
      properties:
        comment_id:
          format: int64
          minimum: 1
          type: integer
        kind:
          enum:
            - review_thread
          type: string
      required:
        - kind
        - comment_id
      type: object
    TaskGitHubDispatchList:
      additionalProperties: false
      properties:
        dispatches:
          items:
            discriminator:
              mapping:
                ci_head:
                  $ref: '#/components/schemas/TaskGitHubDispatchCiHead'
                issue_comment:
                  $ref: '#/components/schemas/TaskGitHubDispatchIssueComment'
                review:
                  $ref: '#/components/schemas/TaskGitHubDispatchReview'
                review_comment:
                  $ref: '#/components/schemas/TaskGitHubDispatchReviewComment'
              propertyName: kind
            oneOf:
              - $ref: '#/components/schemas/TaskGitHubDispatchCiHead'
              - $ref: '#/components/schemas/TaskGitHubDispatchReview'
              - $ref: '#/components/schemas/TaskGitHubDispatchReviewComment'
              - $ref: '#/components/schemas/TaskGitHubDispatchIssueComment'
          type: array
      required:
        - dispatches
      type: object
    ErrorResponse:
      additionalProperties: false
      properties:
        code:
          type: string
        error:
          minLength: 1
          type: string
      required:
        - error
      type: object
    OrgAuthorizationErrorResponse:
      additionalProperties: false
      properties:
        code:
          enum:
            - org_membership_required
            - org_role_insufficient
            - org_suspended
          type: string
        error:
          minLength: 1
          type: string
      required:
        - error
        - code
      type: object
    TaskGitHubDispatchCiHead:
      additionalProperties: false
      properties:
        dispatched_at:
          minLength: 1
          type: string
        head_sha:
          minLength: 1
          type: string
        id:
          format: uuid
          type: string
        kind:
          enum:
            - ci_head
          type: string
        message_id:
          format: uuid
          type: string
        source:
          enum:
            - auto
            - manual
          type: string
      required:
        - id
        - kind
        - head_sha
        - source
        - dispatched_at
      type: object
    TaskGitHubDispatchIssueComment:
      additionalProperties: false
      properties:
        comment_github_id:
          format: int64
          minimum: 1
          type: integer
        dispatched_at:
          minLength: 1
          type: string
        id:
          format: uuid
          type: string
        kind:
          enum:
            - issue_comment
          type: string
        message_id:
          format: uuid
          type: string
        source:
          enum:
            - auto
            - manual
          type: string
      required:
        - id
        - kind
        - comment_github_id
        - source
        - dispatched_at
      type: object
    TaskGitHubDispatchReview:
      additionalProperties: false
      properties:
        comment_github_id:
          format: int64
          minimum: 1
          type: integer
        dispatched_at:
          minLength: 1
          type: string
        id:
          format: uuid
          type: string
        kind:
          enum:
            - review
          type: string
        message_id:
          format: uuid
          type: string
        source:
          enum:
            - auto
            - manual
          type: string
      required:
        - id
        - kind
        - comment_github_id
        - source
        - dispatched_at
      type: object
    TaskGitHubDispatchReviewComment:
      additionalProperties: false
      properties:
        comment_github_id:
          format: int64
          minimum: 1
          type: integer
        dispatched_at:
          minLength: 1
          type: string
        id:
          format: uuid
          type: string
        kind:
          enum:
            - review_comment
          type: string
        message_id:
          format: uuid
          type: string
        source:
          enum:
            - auto
            - manual
          type: string
      required:
        - id
        - kind
        - comment_github_id
        - source
        - dispatched_at
      type: object
  securitySchemes:
    bearerAuth:
      bearerFormat: JWT
      scheme: bearer
      type: http

````