Vers commit_tags API

The commit_tags API from Vers — 2 operation(s) for commit_tags.

OpenAPI Specification

vers-commit-tags-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Orchestrator Control Plane commit_tags API
  description: ''
  license:
    name: ''
  version: 0.1.0
tags:
- name: commit_tags
paths:
  /api/v1/commit_tags:
    get:
      tags:
      - commit_tags
      operationId: list_tags
      responses:
        '200':
          description: List of tags
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListTagsResponse'
        '401':
          description: Unauthorized
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
      - bearer_auth: []
    post:
      tags:
      - commit_tags
      operationId: create_tag
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateTagRequest'
        required: true
      responses:
        '201':
          description: Tag created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateTagResponse'
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Commit not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '409':
          description: Tag already exists
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
      - bearer_auth: []
  /api/v1/commit_tags/{tag_name}:
    get:
      tags:
      - commit_tags
      operationId: get_tag
      parameters:
      - name: tag_name
        in: path
        description: Tag name
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Tag details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TagInfo'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Tag not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
      - bearer_auth: []
    delete:
      tags:
      - commit_tags
      operationId: delete_tag
      parameters:
      - name: tag_name
        in: path
        description: Tag name
        required: true
        schema:
          type: string
      responses:
        '204':
          description: Tag deleted
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Tag not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
      - bearer_auth: []
    patch:
      tags:
      - commit_tags
      operationId: update_tag
      parameters:
      - name: tag_name
        in: path
        description: Tag name
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateTagRequest'
        required: true
      responses:
        '204':
          description: Tag updated
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Tag or commit not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
      - bearer_auth: []
components:
  schemas:
    ErrorResponse:
      type: object
      properties:
        error:
          type: string
          description: Reason of error
        success:
          type: boolean
          description: 'Is always: false'
    CreateTagRequest:
      type: object
      description: Request body for POST /api/v1/commit_tags
      required:
      - tag_name
      - commit_id
      properties:
        commit_id:
          type: string
          format: uuid
          description: The commit ID this tag should point to
        description:
          type:
          - string
          - 'null'
          description: Optional description of what this tag represents
        tag_name:
          type: string
          description: The name of the tag (alphanumeric, hyphens, underscores, dots, 1-64 chars)
    TagInfo:
      type: object
      description: Tag information returned in list and get operations
      required:
      - tag_id
      - tag_name
      - commit_id
      - created_at
      - updated_at
      properties:
        commit_id:
          type: string
          format: uuid
          description: The commit ID this tag currently points to
        created_at:
          type: string
          format: date-time
          description: When the tag was created
        description:
          type:
          - string
          - 'null'
          description: Optional description of what this tag represents
        tag_id:
          type: string
          format: uuid
          description: The tag's unique identifier
        tag_name:
          type: string
          description: The name of the tag
        updated_at:
          type: string
          format: date-time
          description: When the tag was last updated (moved to different commit or description changed)
    CreateTagResponse:
      type: object
      description: Response body for POST /api/v1/commit_tags
      required:
      - tag_id
      - tag_name
      - commit_id
      properties:
        commit_id:
          type: string
          format: uuid
          description: The commit ID this tag points to
        tag_id:
          type: string
          format: uuid
          description: The ID of the newly created tag
        tag_name:
          type: string
          description: The name of the tag
    UpdateTagRequest:
      type: object
      description: 'Request body for PATCH /api/v1/commit_tags/{tag_name}


        For `description`:

        - Field absent from JSON → don''t change the description

        - Field present as `null` → clear the description

        - Field present as `"text"` → set the description to "text"'
      properties:
        commit_id:
          type:
          - string
          - 'null'
          format: uuid
          description: Optional new commit ID to move the tag to
        description:
          type:
          - string
          - 'null'
          description: Optional new description for the tag. Send `null` to clear an existing description.
    ListTagsResponse:
      type: object
      description: Response body for GET /api/v1/commit_tags
      required:
      - tags
      properties:
        tags:
          type: array
          items:
            $ref: '#/components/schemas/TagInfo'
          description: List of all tags in the user's organization
  securitySchemes:
    bearer_auth:
      type: http
      scheme: bearer
      bearerFormat: Token