capability_id: release.list
version: "1.0.0"
description: List releases for a repository.
input_schema:
  type: object
  required: [owner, name]
  properties:
    owner: { type: string, minLength: 1 }
    name: { type: string, minLength: 1 }
    first: { type: integer, minimum: 1, maximum: 100, default: 30 }
    after: { type: [string, "null"] }
  additionalProperties: false
output_schema:
  type: object
  required: [items, pageInfo]
  properties:
    items:
      type: array
      items:
        type: object
        required: [id, tagName, name, isDraft, isPrerelease, url, targetCommitish, createdAt, publishedAt]
        properties:
          id: { type: ["integer", "null"], minimum: 0 }
          tagName: { type: [string, "null"] }
          name: { type: [string, "null"] }
          isDraft: { type: boolean }
          isPrerelease: { type: boolean }
          url: { type: [string, "null"] }
          targetCommitish: { type: [string, "null"] }
          createdAt: { type: [string, "null"] }
          publishedAt: { type: [string, "null"] }
        additionalProperties: false
    pageInfo:
      type: object
      required: [hasNextPage, endCursor]
      properties:
        hasNextPage: { type: boolean }
        endCursor: { type: [string, "null"] }
      additionalProperties: false
  additionalProperties: false
routing:
  preferred: graphql
  fallbacks: [cli]
graphql:
  operationName: ReleaseList
  operationType: query
  documentPath: src/gql/operations/release-list.graphql
cli:
  command: api
