ThoughtSpot Version Control API

The Version Control API from ThoughtSpot — 9 operation(s) for version control.

Documentation

Specifications

Other Resources

OpenAPI Specification

thoughtspot-version-control-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: ThoughtSpot Public REST 10.1.0.cl Version Control API
  version: '2.0'
servers:
- url: '{base-url}'
  variables:
    base-url:
      default: https://localhost:443
security:
- bearerAuth: []
tags:
- name: Version Control
paths:
  /api/rest/2.0/vcs/git/branches/commit:
    post:
      operationId: commitBranch
      description: "\n <span class=\"since-beta-tag\">Version: 9.2.0.cl or later</span>\n\nCommits TML files of metadata objects to the Git branch configured on your instance.\n\nRequires at least edit access to objects used in the commit operation.\n\nBefore using this endpoint to push your commits:\n\n* Enable Git integration on your instance.\n* Make sure the Git repository and branch details are configured on your instance.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/git-integration).\n\n\n\n\n#### Endpoint URL\n"
      tags:
      - Version Control
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CommitBranchRequest'
        required: true
      parameters: []
      responses:
        '200':
          description: Successfully committed the metadata objects
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CommitResponse'
        '400':
          description: Invalid request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /api/rest/2.0/vcs/git/config/create:
    post:
      operationId: createConfig
      description: "\n <span class=\"since-beta-tag\">Version: 9.2.0.cl or later</span>\n\nAllows you to connect a ThoughtSpot instance to a Git repository.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance on your instance, the `CAN_SETUP_VERSION_CONTROL` (**Can set up version control**) privilege.\n\nYou can use this API endpoint to connect your ThoughtSpot development and production environments to the development and production branches of a Git repository.\n\nBefore using this endpoint to connect your ThoughtSpot instance to a Git repository, check the following prerequisites:\n\n* You have a Git repository. If you are using GitHub, make sure you have a valid account and an access token to connect ThoughtSpot to GitHub. For information about generating a token, see [GitHub Documentation](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens).\n\n* Your access token has `repo` scope that grants full access to public and private repositories.\n* Your Git repository has a branch that can be configured as a default branch in ThoughtSpot.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/?pageid=git-integration).\n\n**Note**: ThoughtSpot supports only GitHub / itHub Enterprise for CI/CD.\n\n\n\n\n#### Endpoint URL\n"
      tags:
      - Version Control
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateConfigRequest'
        required: true
      parameters: []
      responses:
        '200':
          description: Successfully configured local repository
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RepoConfigObject'
        '400':
          description: Invalid request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /api/rest/2.0/vcs/git/config/delete:
    post:
      operationId: deleteConfig
      description: "\n <span class=\"since-beta-tag\">Version: 9.2.0.cl or later</span>\n\nDeletes Git repository configuration from your ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance on your instance, the `CAN_SETUP_VERSION_CONTROL` (**Can set up version control**) privilege.\n\n\n\n\n#### Endpoint URL\n"
      tags:
      - Version Control
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeleteConfigRequest'
        required: true
      parameters: []
      responses:
        '204':
          description: Successfully deleted local repository configuration
        '400':
          description: Invalid request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /api/rest/2.0/vcs/git/commits/deploy:
    post:
      operationId: deployCommit
      description: "\n <span class=\"since-beta-tag\">Version: 9.2.0.cl or later</span>\n\nAllows you to deploy a commit and publish TML content to your ThoughtSpot instance.\n\nRequires at least edit access to the objects used in the deploy operation.\n\nThe API deploys the head of the branch unless a `commit_id` is specified in the API request. If the branch name is not defined in the request, the default branch is considered for deploying commits.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/git-integration).\n\n\n\n\n#### Endpoint URL\n"
      tags:
      - Version Control
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeployCommitRequest'
        required: true
      parameters: []
      responses:
        '200':
          description: Successfully deployed the changes
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/DeployResponse'
        '400':
          description: Invalid request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /api/rest/2.0/vcs/git/commits/{commit_id}/revert:
    post:
      operationId: revertCommit
      description: "\n <span class=\"since-beta-tag\">Version: 9.2.0.cl or later</span>\n\nReverts TML objects to a previous commit specified in the API request.\n\nRequires at least edit access to objects.\n\nIn the API request, specify the `commit_id`. If the branch name is not specified in the request, the API will consider the default branch configured on your instance.\n\nBy default, the API reverts all objects. If the revert operation fails for one of the objects provided in the commit, the API returns an error and does not revert any object.\n\nFor more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/git-integration).\n\n\n\n\n#### Endpoint URL\n"
      tags:
      - Version Control
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RevertCommitRequest'
        required: true
      parameters:
      - in: path
        name: commit_id
        required: true
        schema:
          type: string
        description: Commit id to which the object should be reverted
      responses:
        '200':
          description: Reverted the object to the commit point specified
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RevertResponse'
        '400':
          description: Invalid request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /api/rest/2.0/vcs/git/commits/search:
    post:
      operationId: searchCommits
      description: "\n <span class=\"since-beta-tag\">Version: 9.2.0.cl or later</span>\n\nGets a list of commits for a given metadata object.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\n\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance on your instance, the `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) privilege and edit access to the metadata objects.\n\n\n\n\n#### Endpoint URL\n"
      tags:
      - Version Control
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SearchCommitsRequest'
        required: true
      parameters: []
      responses:
        '200':
          description: Commit history of the metadata object
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CommitHistoryResponse'
        '400':
          description: Invalid request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /api/rest/2.0/vcs/git/config/search:
    post:
      operationId: searchConfig
      description: "\n <span class=\"since-beta-tag\">Version: 9.2.0.cl or later</span>\n\nGets Git repository connections configured on the ThoughtSpot instance.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance on your instance, the `CAN_SETUP_VERSION_CONTROL` (**Can set up version control**) privilege.\n\n\n\n\n#### Endpoint URL\n"
      tags:
      - Version Control
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SearchConfigRequest'
        required: true
      parameters: []
      responses:
        '200':
          description: Details of local repository configuration
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RepoConfigObject'
        '400':
          description: Invalid request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /api/rest/2.0/vcs/git/config/update:
    post:
      operationId: updateConfig
      description: "\n <span class=\"since-beta-tag\">Version: 9.2.0.cl or later</span>\n\nUpdates Git repository configuration settings.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance on your instance, the `CAN_SETUP_VERSION_CONTROL` (**Can set up version control**) privilege.\n\n\n\n\n#### Endpoint URL\n"
      tags:
      - Version Control
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateConfigRequest'
        required: true
      parameters: []
      responses:
        '200':
          description: Successfully updated local repository configuration
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RepoConfigObject'
        '400':
          description: Invalid request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /api/rest/2.0/vcs/git/branches/validate:
    post:
      operationId: validateMerge
      description: "\n <span class=\"since-beta-tag\">Version: 9.2.0.cl or later</span>\n\nValidates the content of your source branch against the objects in your destination environment.\n\nBefore merging content from your source branch to the destination branch, run this API operation from your destination environment and ensure that the changes from the source branch function in the destination environment.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) privilege.\n\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance on your instance, the `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) privilege and edit access to the metadata objects.\n\n\n\n\n#### Endpoint URL\n"
      tags:
      - Version Control
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ValidateMergeRequest'
        required: true
      parameters: []
      responses:
        '200':
          description: validation done successfully
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/DeployResponse'
        '400':
          description: Invalid request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    CommitBranchRequest:
      type: object
      properties:
        metadata:
          description: Metadata objects.
          type: array
          items:
            $ref: '#/components/schemas/MetadataObject'
        delete_aware:
          description: Delete the tml files from version control repo if it does not exist in the ThoughSpot instance
          default: true
          type: boolean
          nullable: true
        branch_name:
          description: "   Name of the remote branch where object should be pushed\n   \n\nNote: If no branch_name is specified, then the commit_branch_name will be considered."
          type: string
        comment:
          description: Comment to be added to the commit
          type: string
      required:
      - metadata
      - comment
    RepoConfigObject:
      type: object
      properties:
        repository_url:
          type: string
          description: Remote repository URL configured
          nullable: true
        username:
          type: string
          description: Username to authenticate connection to the version control system
          nullable: true
        commit_branch_name:
          type: string
          description: Name of the remote branch where objects from this Thoughtspot instance will be versioned.
          nullable: true
        branches:
          type: array
          items:
            type: string
          description: Branches that have been pulled in local repository
          nullable: true
        enable_guid_mapping:
          type: boolean
          description: Maintain mapping of guid for the deployment to an instance
          nullable: true
        configuration_branch_name:
          type: string
          description: Name of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained.
          nullable: true
        org:
          $ref: '#/components/schemas/Org'
          description: Details of the Org
          nullable: true
    SearchConfigRequest:
      type: object
      properties:
        org_identifiers:
          description: "   Applicable when Orgs is enabled in the cluster\n   \n\nList of Org ids or name. Provide value -1 for cluster level. Example : [\"OrgID1-or-Name1\", \"OrgID2-or-Name2\"] \n\n\n   \n\nNote: If no value is specified, then the configurations will be returned for all orgs the user has access to  <br/>  <span class=\"since-beta-tag\">Version: 9.5.0.cl or later</span>"
          type: array
          items:
            type: string
    DeleteConfigRequest:
      type: object
      properties:
        cluster_level:
          description: "   Applicable when Orgs is enabled in the cluster\n   \n\nIndicator to consider cluster level or org level config. Set it to false to delete configuration from current org. If set to true, then the configuration at cluster level and orgs that inherited the configuration from cluster level will be deleted.  <br/>  <span class=\"since-beta-tag\">Version: 9.5.0.cl or later</span>"
          type: boolean
          nullable: true
    UpdateConfigRequest:
      type: object
      properties:
        username:
          description: Username to authenticate connection to version control system
          type: string
        access_token:
          description: Access token corresponding to the user to authenticate connection to version control system
          type: string
        org_identifier:
          description: "   Applicable when Orgs is enabled in the cluster\n   \n\nList of Org ids or name. Provide value -1 for cluster level. Example : [\"OrgID1-or-Name1\", \"OrgID2-or-Name2\"] \n\n\n   \n\nNote: If no value is specified, then the configurations will be returned for all orgs the user has access to  <br/>  <span class=\"since-beta-tag\">Version: 9.5.0.cl or later</span>"
          type: string
        branch_names:
          description: List the remote branches to configure. Example:[development, production]
          type: array
          items:
            type: string
        commit_branch_name:
          description: 'Name of the remote branch where objects from this Thoughtspot instance will be versioned. <br/>  <span class="since-beta-tag">Version: 9.7.0.cl or later</span>'
          type: string
        enable_guid_mapping:
          description: 'Maintain mapping of guid for the deployment to an instance <br/>  <span class="since-beta-tag">Version: 9.4.0.cl or later</span>'
          type: boolean
          nullable: true
        configuration_branch_name:
          description: 'Name of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained. <br/>  <span class="since-beta-tag">Version: 9.7.0.cl or later</span>'
          type: string
    RevertCommitRequest:
      type: object
      properties:
        metadata:
          description: Metadata objects.
          type: array
          items:
            $ref: '#/components/schemas/MetadataObject'
        branch_name:
          description: "   Name of the branch where the reverted version should be committed\n   \n\nNote: If no branch_name is specified, then the commit_branch_name will be considered."
          type: string
        revert_policy:
          description: 'Policy to apply when reverting a commit. Valid values: [ALL_OR_NONE, PARTIAL]'
          default: ALL_OR_NONE
          type: string
          enum:
          - ALL_OR_NONE
          - PARTIAL
    ValidateMergeRequest:
      type: object
      properties:
        source_branch_name:
          description: Name of the branch from which changes need to be picked for validation
          type: string
        target_branch_name:
          description: Name of the branch where files will be merged
          type: string
      required:
      - source_branch_name
      - target_branch_name
    ErrorResponse:
      type: object
      properties:
        error:
          type: object
          nullable: true
    DeployResponse:
      type: object
      properties:
        file_name:
          type: string
          description: Name of the file deployed
          nullable: true
        metadata_name:
          type: string
          description: Name of the metadata object
          nullable: true
        metadata_type:
          type: string
          description: Type of the metadata object
          nullable: true
        status_code:
          type: string
          description: Indicates the status of deployment for the file
          nullable: true
        status_message:
          type: string
          description: Any error or warning with the deployment
          nullable: true
    SearchCommitsRequest:
      type: object
      properties:
        metadata_identifier:
          description: Unique ID or name of the metadata.
          type: string
        metadata_type:
          description: Type of metadata.
          type: string
          enum:
          - LIVEBOARD
          - ANSWER
          - LOGICAL_TABLE
          - CUSTOM_ACTION
        branch_name:
          description: "   Name of the branch from which commit history needs to be displayed.\n   \n\nNote: If no branch_name is specified, then commits will be returned for the default branch for this configuration."
          type: string
        record_offset:
          description: "    Record offset point in the commit history to display the response.\n    \n\nNote: If no record offset is specified, the beginning of the record will be considered."
          type: integer
          format: int32
        record_size:
          description: "    Number of history records from record offset point to be displayed in the response.\n    \n\nNote: If no record size is specified, then all the records will be considered."
          type: integer
          format: int32
      required:
      - metadata_identifier
    CommitResponse:
      type: object
      properties:
        committer:
          $ref: '#/components/schemas/CommiterType'
          description: Repository user using which changes were committed
          nullable: true
        author:
          $ref: '#/components/schemas/AuthorType'
          description: Thoughtspot user who commits the changes
          nullable: true
        comment:
          type: string
          description: Comments associated with the commit
          nullable: true
        commit_time:
          type: string
          description: Time at which the changes were committed.
          nullable: true
        commit_id:
          type: string
          description: SHA id associated with the commit
          nullable: true
        branch:
          type: string
          description: Branch where changes were committed
          nullable: true
        committed_files:
          type: array
          items:
            $ref: '#/components/schemas/CommitFileType'
          description: Files that were pushed as part of this commit
          nullable: true
    RevertedMetadata:
      type: object
      required:
      - file_name
      - metadata_name
      - metadata_type
      - status_code
      - status_message
      properties:
        file_name:
          type: string
          description: Name of the file deployed
        metadata_name:
          type: string
          description: Name of the metadata object
        metadata_type:
          type: string
          description: Type of the metadata object
        status_code:
          type: string
          description: Indicates the status of deployment for the file
        status_message:
          type: string
          description: Any error or warning with the deployment
    Org:
      type: object
      required:
      - id
      - name
      properties:
        id:
          type: integer
          format: int32
          description: The ID of the object.
        name:
          type: string
          description: Name of the object.
      description: The current Org context of the user.
    CommitHistoryResponse:
      type: object
      required:
      - committer
      - author
      - comment
      - commit_time
      - commit_id
      - branch
      properties:
        committer:
          $ref: '#/components/schemas/CommiterType'
          description: Repository user using which changes were committed
        author:
          $ref: '#/components/schemas/AuthorType'
          description: Thoughtspot user who commits the changes
        comment:
          type: string
          description: Comments associated with the commit
        commit_time:
          type: string
          description: Time at which the changes were committed.
        commit_id:
          type: string
          description: SHA id associated with the commit
        branch:
          type: string
          description: Branch where changes were committed
    MetadataObject:
      type: object
      required:
      - identifier
      properties:
        identifier:
          type: string
          description: Unique ID or name of the metadata
        type:
          type: string
          enum:
          - LIVEBOARD
          - ANSWER
          - LOGICAL_TABLE
          - CUSTOM_ACTION
          description: "  Type of metadata.\n  \n\nRequired if the name of the object is set as the identifier. This attribute is optional when the object GUID is specified as the identifier."
          nullable: true
    DeployCommitRequest:
      type: object
      properties:
        commit_id:
          description: "   Commit_id against which the files should be picked to deploy.\n   \n\nNote: If no commit_id is specified, then the head of the branch is considered."
          type: string
        branch_name:
          description: Name of the remote branch where changes should be picked
          type: string
        deploy_type:
          description: Indicates if all files or only modified file at specified commit point should be considered
          default: DELTA
          type: string
          enum:
          - FULL
          - DELTA
        deploy_policy:
          description: Define the policy to follow while importing TML in the ThoughtSpot environment. Use “ALL_OR_NONE” to cancel the deployment of all ThoughtSpot objects if at least one of them fails to import. Use “Partial” to import ThoughtSpot objects that validate successfully even if other objects in the same deploy operations fail to import.
          default: ALL_OR_NONE
          type: string
          enum:
          - ALL_OR_NONE
          - PARTIAL
          - VALIDATE_ONLY
      required:
      - branch_name
    CommitFileType:
      type: object
      required:
      - file_name
      - status_code
      properties:
        file_name:
          type: string
          description: Name of the file deployed
        status_code:
          type: string
          description: Indicates the status of deployment for the file
        status_message:
          type: string
          description: Any error or warning with the deployment
          nullable: true
    RevertResponse:
      type: object
      properties:
        committer:
          $ref: '#/components/schemas/CommiterType'
          description: Repository user using which changes were committed
          nullable: true
        author:
          $ref: '#/components/schemas/AuthorType'
          description: Thoughtspot user who commits the changes
          nullable: true
        comment:
          type: string
          description: Comments associated with the commit
          nullable: true
        commit_time:
          type: string
          description: Time at which the changes were committed.
          nullable: true
        commit_id:
          type: string
          description: SHA id associated with the commit
          nullable: true
        branch:
          type: string
          description: Branch where changes were committed
          nullable: true
        committed_files:
          type: array
          items:
            $ref: '#/components/schemas/CommitFileType'
          description: Files that were pushed as part of this commit
          nullable: true
        reverted_metadata:
          type: array
          items:
            $ref: '#/components/schemas/RevertedMetadata'
          description: Metadata of reverted file of this commit
          nullable: true
    CommiterType:
      type: object
      properties:
        email:
          type: string
          description: Email id of the committer
          nullable: true
        username:
 

# --- truncated at 32 KB (37 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/thoughtspot/refs/heads/main/openapi/thoughtspot-version-control-api-openapi.yml