GitLab CI/CD project_import API

Operations related to importing projects

OpenAPI Specification

gitlab-ci-project-import-api-openapi.yml Raw ↑
swagger: '2.0'
info:
  title: GitLab access_requests project_import API
  version: v4
  description: Operations related to access requests
host: gitlab.com
produces:
- application/json
tags:
- name: project_import
  description: Operations related to importing projects
paths:
  /api/v4/projects/{id}/export:
    get:
      summary: Get export status
      description: This feature was introduced in GitLab 10.6.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      responses:
        '200':
          description: Get export status
          schema:
            $ref: '#/definitions/API_Entities_ProjectExportStatus'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
        '503':
          description: Service unavailable
      tags:
      - project_import
      operationId: getApiV4ProjectsIdExport
    post:
      summary: Start export
      description: This feature was introduced in GitLab 10.6.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: postApiV4ProjectsIdExport
        in: body
        required: true
        schema:
          $ref: '#/definitions/postApiV4ProjectsIdExport'
      responses:
        '202':
          description: Start export
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
        '429':
          description: Too many requests
        '503':
          description: Service unavailable
      tags:
      - project_import
      operationId: postApiV4ProjectsIdExport
  /api/v4/projects/{id}/export/download:
    get:
      summary: Download export
      description: This feature was introduced in GitLab 10.6.
      produces:
      - application/octet-stream
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      responses:
        '200':
          description: Download export
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
        '503':
          description: Service unavailable
      tags:
      - project_import
      operationId: getApiV4ProjectsIdExportDownload
  /api/v4/projects/{id}/export_relations:
    post:
      summary: Start relations export
      description: This feature was introduced in GitLab 14.4
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: postApiV4ProjectsIdExportRelations
        in: body
        required: true
        schema:
          $ref: '#/definitions/postApiV4ProjectsIdExportRelations'
      responses:
        '202':
          description: Start relations export
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
        '503':
          description: Service unavailable
      tags:
      - project_import
      operationId: postApiV4ProjectsIdExportRelations
  /api/v4/projects/{id}/export_relations/download:
    get:
      summary: Download relations export
      description: This feature was introduced in GitLab 14.4
      produces:
      - application/octet-stream
      - application/gzip
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: query
        name: relation
        description: Project relation name
        type: string
        required: true
      - in: query
        name: batched
        description: Whether to download in batches
        type: boolean
        required: false
      - in: query
        name: batch_number
        description: Batch number to download
        type: integer
        format: int32
        required: false
      responses:
        '200':
          description: Download relations export
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
        '500':
          description: Internal Server Error
        '503':
          description: Service unavailable
      tags:
      - project_import
      operationId: getApiV4ProjectsIdExportRelationsDownload
  /api/v4/projects/{id}/export_relations/status:
    get:
      summary: Relations export status
      description: This feature was introduced in GitLab 14.4
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: query
        name: relation
        description: Project relation name
        type: string
        required: false
      responses:
        '200':
          description: Relations export status
          schema:
            type: array
            items:
              $ref: '#/definitions/API_Entities_BulkImports_ExportStatus'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
        '503':
          description: Service unavailable
      tags:
      - project_import
      operationId: getApiV4ProjectsIdExportRelationsStatus
  /api/v4/projects/import/authorize:
    post:
      summary: Workhorse authorize the project import upload
      description: This feature was introduced in GitLab 12.9
      produces:
      - application/json
      consumes:
      - application/json
      responses:
        '201':
          description: Workhorse authorize the project import upload
      tags:
      - project_import
      operationId: postApiV4ProjectsImportAuthorize
  /api/v4/projects/import:
    post:
      summary: Create a new project import
      description: This feature was introduced in GitLab 10.6.
      produces:
      - application/json
      consumes:
      - multipart/form-data
      parameters:
      - in: formData
        name: path
        description: The new project path and name
        type: string
        required: true
      - in: formData
        name: file
        description: The project export file to be imported
        type: file
        required: true
      - in: formData
        name: name
        description: The name of the project to be imported. Defaults to the path of the project if not provided.
        type: string
        required: false
      - in: formData
        name: namespace
        description: (deprecated) The ID or path of the namespace to import the project to. Defaults to the current user's namespace.
        type: string
        required: false
      - in: formData
        name: namespace_id
        description: The ID of the namespace that the project will be imported into. Defaults to the current user's namespace.
        type: integer
        format: int32
        required: false
        example: 1
      - in: formData
        name: namespace_path
        description: The path of the namespace that the project will be imported into. Defaults to the current user's namespace.
        type: string
        required: false
        example: new_path/gitlab
      - in: formData
        name: overwrite
        description: If there is a project in the same namespace and with the same name overwrite it
        type: boolean
        default: false
        required: false
      - in: formData
        name: override_params[description]
        description: The description of the project
        type: string
        required: false
      - in: formData
        name: override_params[build_git_strategy]
        description: The Git strategy. Defaults to `fetch`
        type: string
        enum:
        - fetch
        - clone
        required: false
      - in: formData
        name: override_params[build_timeout]
        description: Build timeout
        type: integer
        format: int32
        required: false
      - in: formData
        name: override_params[auto_cancel_pending_pipelines]
        description: Auto-cancel pending pipelines
        type: string
        enum:
        - disabled
        - enabled
        required: false
      - in: formData
        name: override_params[ci_config_path]
        description: The path to CI config file. Defaults to `.gitlab-ci.yml`
        type: string
        required: false
      - in: formData
        name: override_params[service_desk_enabled]
        description: Disable or enable the service desk
        type: boolean
        required: false
      - in: formData
        name: override_params[issues_enabled]
        description: Flag indication if the issue tracker is enabled
        type: boolean
        required: false
      - in: formData
        name: override_params[merge_requests_enabled]
        description: Flag indication if merge requests are enabled
        type: boolean
        required: false
      - in: formData
        name: override_params[wiki_enabled]
        description: Flag indication if the wiki is enabled
        type: boolean
        required: false
      - in: formData
        name: override_params[jobs_enabled]
        description: Flag indication if jobs are enabled
        type: boolean
        required: false
      - in: formData
        name: override_params[snippets_enabled]
        description: Flag indication if snippets are enabled
        type: boolean
        required: false
      - in: formData
        name: override_params[issues_access_level]
        description: Issues access level. One of `disabled`, `private` or `enabled`
        type: string
        enum:
        - disabled
        - private
        - enabled
        required: false
      - in: formData
        name: override_params[repository_access_level]
        description: Repository access level. One of `disabled`, `private` or `enabled`
        type: string
        enum:
        - disabled
        - private
        - enabled
        required: false
      - in: formData
        name: override_params[merge_requests_access_level]
        description: Merge requests access level. One of `disabled`, `private` or `enabled`
        type: string
        enum:
        - disabled
        - private
        - enabled
        required: false
      - in: formData
        name: override_params[forking_access_level]
        description: Forks access level. One of `disabled`, `private` or `enabled`
        type: string
        enum:
        - disabled
        - private
        - enabled
        required: false
      - in: formData
        name: override_params[wiki_access_level]
        description: Wiki access level. One of `disabled`, `private` or `enabled`
        type: string
        enum:
        - disabled
        - private
        - enabled
        required: false
      - in: formData
        name: override_params[builds_access_level]
        description: Builds access level. One of `disabled`, `private` or `enabled`
        type: string
        enum:
        - disabled
        - private
        - enabled
        required: false
      - in: formData
        name: override_params[snippets_access_level]
        description: Snippets access level. One of `disabled`, `private` or `enabled`
        type: string
        enum:
        - disabled
        - private
        - enabled
        required: false
      - in: formData
        name: override_params[package_registry_access_level]
        description: Controls visibility of the package registry. One of `disabled`, `private`, `enabled` or `public`. `private` will make the package registry accessible only to project members (reporter role and above). `enabled` will make the package registry accessible to everyone who has access to the project. `public` will make the package registry accessible to everyone. `disabled` will disable the package registry
        type: string
        enum:
        - disabled
        - private
        - enabled
        - public
        required: false
      - in: formData
        name: override_params[pages_access_level]
        description: Pages access level. One of `disabled`, `private`, `enabled` or `public`
        type: string
        enum:
        - disabled
        - private
        - enabled
        - public
        required: false
      - in: formData
        name: override_params[analytics_access_level]
        description: Analytics access level. One of `disabled`, `private` or `enabled`
        type: string
        enum:
        - disabled
        - private
        - enabled
        required: false
      - in: formData
        name: override_params[container_registry_access_level]
        description: Controls visibility of the container registry. One of `disabled`, `private` or `enabled`. `private` will make the container registry accessible only to project members (reporter role and above). `enabled` will make the container registry accessible to everyone who has access to the project. `disabled` will disable the container registry
        type: string
        enum:
        - disabled
        - private
        - enabled
        required: false
      - in: formData
        name: override_params[security_and_compliance_access_level]
        description: Security and compliance access level. One of `disabled`, `private` or `enabled`
        type: string
        enum:
        - disabled
        - private
        - enabled
        required: false
      - in: formData
        name: override_params[releases_access_level]
        description: Releases access level. One of `disabled`, `private` or `enabled`
        type: string
        enum:
        - disabled
        - private
        - enabled
        required: false
      - in: formData
        name: override_params[environments_access_level]
        description: Environments access level. One of `disabled`, `private` or `enabled`
        type: string
        enum:
        - disabled
        - private
        - enabled
        required: false
      - in: formData
        name: override_params[feature_flags_access_level]
        description: Feature flags access level. One of `disabled`, `private` or `enabled`
        type: string
        enum:
        - disabled
        - private
        - enabled
        required: false
      - in: formData
        name: override_params[infrastructure_access_level]
        description: Infrastructure access level. One of `disabled`, `private` or `enabled`
        type: string
        enum:
        - disabled
        - private
        - enabled
        required: false
      - in: formData
        name: override_params[monitor_access_level]
        description: Monitor access level. One of `disabled`, `private` or `enabled`
        type: string
        enum:
        - disabled
        - private
        - enabled
        required: false
      - in: formData
        name: override_params[model_experiments_access_level]
        description: Model experiments access level. One of `disabled`, `private` or `enabled`
        type: string
        enum:
        - disabled
        - private
        - enabled
        required: false
      - in: formData
        name: override_params[model_registry_access_level]
        description: Model registry access level. One of `disabled`, `private` or `enabled`
        type: string
        enum:
        - disabled
        - private
        - enabled
        required: false
      - in: formData
        name: override_params[emails_disabled]
        description: 'Deprecated: Use emails_enabled instead.'
        type: boolean
        required: false
      - in: formData
        name: override_params[emails_enabled]
        description: Enable email notifications
        type: boolean
        required: false
      - in: formData
        name: override_params[show_default_award_emojis]
        description: Show default award emojis
        type: boolean
        required: false
      - in: formData
        name: override_params[show_diff_preview_in_email]
        description: Include the code diff preview in merge request notification emails
        type: boolean
        required: false
      - in: formData
        name: override_params[warn_about_potentially_unwanted_characters]
        description: Warn about potentially unwanted characters
        type: boolean
        required: false
      - in: formData
        name: override_params[enforce_auth_checks_on_uploads]
        description: Enforce auth check on uploads
        type: boolean
        required: false
      - in: formData
        name: override_params[shared_runners_enabled]
        description: Flag indication if shared runners are enabled for that project
        type: boolean
        required: false
      - in: formData
        name: override_params[group_runners_enabled]
        description: Flag indication if group runners are enabled for that project
        type: boolean
        required: false
      - in: formData
        name: override_params[resource_group_default_process_mode]
        description: The process mode of the resource group
        type: string
        enum:
        - unordered
        - oldest_first
        - newest_first
        - newest_ready_first
        required: false
      - in: formData
        name: override_params[resolve_outdated_diff_discussions]
        description: Automatically resolve merge request diff threads on lines changed with a push
        type: boolean
        required: false
      - in: formData
        name: override_params[remove_source_branch_after_merge]
        description: Remove the source branch by default after merge
        type: boolean
        required: false
      - in: formData
        name: override_params[packages_enabled]
        description: 'Deprecated: Use :package_registry_access_level instead. Enable project packages feature'
        type: boolean
        required: false
      - in: formData
        name: override_params[container_registry_enabled]
        description: 'Deprecated: Use :container_registry_access_level instead. Flag indication if the container registry is enabled for that project'
        type: boolean
        required: false
      - in: formData
        name: override_params[container_expiration_policy_attributes][cadence]
        description: Container expiration policy cadence for recurring job
        type: string
        required: false
      - in: formData
        name: override_params[container_expiration_policy_attributes][keep_n]
        description: Container expiration policy number of images to keep
        type: integer
        format: int32
        required: false
      - in: formData
        name: override_params[container_expiration_policy_attributes][older_than]
        description: Container expiration policy remove images older than value
        type: string
        required: false
      - in: formData
        name: override_params[container_expiration_policy_attributes][name_regex]
        description: Container expiration policy regex for image removal
        type: string
        required: false
      - in: formData
        name: override_params[container_expiration_policy_attributes][name_regex_keep]
        description: Container expiration policy regex for image retention
        type: string
        required: false
      - in: formData
        name: override_params[container_expiration_policy_attributes][enabled]
        description: Flag indication if container expiration policy is enabled
        type: boolean
        required: false
      - in: formData
        name: override_params[lfs_enabled]
        description: Flag indication if Git LFS is enabled for that project
        type: boolean
        required: false
      - in: formData
        name: override_params[visibility]
        description: The visibility of the project.
        type: string
        enum:
        - private
        - internal
        - public
        required: false
      - in: formData
        name: override_params[public_builds]
        description: 'Deprecated: Use public_jobs instead.'
        type: boolean
        required: false
      - in: formData
        name: override_params[public_jobs]
        description: Perform public builds
        type: boolean
        required: false
      - in: formData
        name: override_params[request_access_enabled]
        description: Allow users to request member access
        type: boolean
        required: false
      - in: formData
        name: override_params[only_allow_merge_if_pipeline_succeeds]
        description: Only allow to merge if builds succeed
        type: boolean
        required: false
      - in: formData
        name: override_params[allow_merge_on_skipped_pipeline]
        description: Allow to merge if pipeline is skipped
        type: boolean
        required: false
      - in: formData
        name: override_params[only_allow_merge_if_all_discussions_are_resolved]
        description: Only allow to merge if all threads are resolved
        type: boolean
        required: false
      - in: formData
        name: override_params[tag_list]
        description: 'Deprecated: Use :topics instead'
        type: array
        items:
          type: string
        required: false
      - in: formData
        name: override_params[topics]
        description: The list of topics for a project
        type: array
        items:
          type: string
        required: false
      - in: formData
        name: override_params[avatar]
        description: Avatar image for project
        type: file
        required: false
      - in: formData
        name: override_params[printing_merge_request_link_enabled]
        description: Show link to create/view merge request when pushing from the command line
        type: boolean
        required: false
      - in: formData
        name: override_params[merge_method]
        description: The merge method used when merging merge requests
        type: string
        enum:
        - ff
        - rebase_merge
        - merge
        required: false
      - in: formData
        name: override_params[suggestion_commit_message]
        description: The commit message used to apply merge request suggestions
        type: string
        required: false
      - in: formData
        name: override_params[merge_commit_template]
        description: Template used to create merge commit message
        type: string
        required: false
      - in: formData
        name: override_params[squash_commit_template]
        description: Template used to create squash commit message
        type: string
        required: false
      - in: formData
        name: override_params[issue_branch_template]
        description: Template used to create a branch from an issue
        type: string
        required: false
      - in: formData
        name: override_params[auto_devops_enabled]
        description: Flag indication if Auto DevOps is enabled
        type: boolean
        required: false
      - in: formData
        name: override_params[auto_devops_deploy_strategy]
        description: Auto Deploy strategy
        type: string
        enum:
        - continuous
        - manual
        - timed_incremental
        required: false
      - in: formData
        name: override_params[autoclose_referenced_issues]
        description: Flag indication if referenced issues auto-closing is enabled
        type: boolean
        required: false
      - in: formData
        name: override_params[repository_storage]
        description: Which storage shard the repository is on. Available only to admins
        type: string
        required: false
      - in: formData
        name: override_params[squash_option]
        description: Squash default for project. One of `never`, `always`, `default_on`, or `default_off`.
        type: string
        enum:
        - never
        - always
        - default_on
        - default_off
        required: false
      - in: formData
        name: override_params[mr_default_target_self]
        description: Merge requests of this forked project targets itself by default
        type: boolean
        required: false
      - in: formData
        name: override_params[mr_default_title_template]
        description: Template used to generate the default merge request title. Maximum 100 characters.
        type: string
        required: false
      - in: formData
        name: override_params[only_allow_merge_if_all_status_checks_passed]
        description: Blocks merge requests from merging unless all status checks have passed
        type: boolean
        required: false
      - in: formData
        name: override_params[approvals_before_merge]
        description: How many approvers should approve merge request by default
        type: integer
        format: int32
        required: false
      - in: formData
        name: override_params[mirror]
        description: '[Deprecated] Enables pull mirroring in a project'
        type: boolean
        required: false
      - in: formData
        name: override_params[mirror_trigger_builds]
        description: '[Deprecated] Pull mirroring triggers builds'
        type: boolean
        required: false
      - in: formData
        name: override_params[external_authorization_classification_label]
        description: The classification label for the project
        type: string
        required: false
      - in: formData
        name: override_params[requirements_access_level]
        description: Requirements feature access level. One of `disabled`, `private` or `enabled`
        type: string
        enum:
        - disabled
        - private
        - enabled
        required: false
      - in: formData
        name: override_params[prevent_merge_without_jira_issue]
        description: Require an associated issue from Jira
        type: boolean
        required: false
      - in: formData
        name: override_params[auto_duo_code_review_enabled]
        description: Enable automatic reviews by GitLab Duo on merge requests
        type: boolean
        required: false
      - in: formData
        name: override_params[duo_remote_flows_enabled]
        description: Enable GitLab Duo remote flows for this project
        type: boolean
        required: false
      - in: formData
        name: override_params[duo_sast_fp_detection_enabled]
        description: Enable GitLab Duo SAST false positive detection for this project
        type: boolean
        required: false
      - in: formData
        name: override_params[duo_secret_detection_fp_enabled]
        description: Enable GitLab Duo Secret Detection false positive detection for this project
        type: boolean
        required: false
      - in: formData
        name: override_params[duo_sast_vr_workflow_enabled]
        description: Enable GitLab Duo SAST vulnerability resolution workflow for this project
        type: boolean
        required: false
      - in: formData
        name: override_params[spp_repository_pipeline_access]
        description: Grant read-only access to security policy configurations for enforcement in linked CI/CD projects
        type: boolean
        required: false
      - in: formData
        name: override_params[merge_request_title_regex]
        description: The regex the Merge Request must adhere to
        type: string
        required: false
      - in: formData
        name: override_params[merge_request_title_regex_description]
        description: The description for the regex the Merge Request must adhere to
        type: string
        required: false
      - in: formData
        name: file.path
        description: Path to locally stored body (generated by Workhorse)
        type: string
        required: false
      - in: formData
        name: file.name
        description: Real filename as send in Content-Disposition (generated by Workhorse)
        type: string
        required: false
      - in: formData
        name: file.type
        description: Real content type as send in Content-Type (generated by Workhorse)
        type: string
        required: false
      - in: formData
        name: file.size
        description: Real size of file (generated by Workhorse)
        type: integer
        format: int32
        required: false
      - in: formData
        name: file.md5
        description: MD5 checksum of the file (generated by Workhorse)
        type: string
        required: false
      - in: formData
        name: file.sha1
        description: SHA1 checksum of the file (generated by Workhorse)
        type: string
        required: false
      - in: formData
        name: file.sha256
        description: SHA256 checksum of the file (generated by Workhorse)
        type: string
        required: false
      - in: formData
        name: file.etag
        description: Etag of the file (generated by Workhorse)
        type: string
        required: false
      - in: formData
        name: file.remote_id
        description: Remote_id of the file (generated by Workhorse)
        type: string
        required: false
      - in: formData
        name: file.remote_url
        description: Remote_url of the file (generated by Workhorse)
        type: string
        required: false
      responses:
        '201':
          description: Create a new project import
          schema:
            $ref: '#/definitions/API_Entities_ProjectImportStatus'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '400':
          description: Bad request
        '404':
          description: Not found
        '503':
          description: Service unavailable
      tags:
      - project_import
      operationId: postApiV4ProjectsImport
  /api/v4/projects/{id}/import:
    get:
      summary: Get a project import status
      description: This feature was introduced in GitLab 10.6.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      responses:
        '200':
          description: Get a project import status
          schema:
            $ref: '#/definitions/API_Entities_ProjectImportStatus'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '400':
          description: Bad request
        '404':
          description: Not found
        '503':
          description: Service unavailable
      tags:
      - project_import
      operationId: getApiV4ProjectsIdImport
  /api/v4/projects/{id}/import/git:
    post:
      summary: Import a project from a Git URL
      description: This feature was introduced in GitLab 18.10.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: postApiV4ProjectsIdImportGit
        in: body
        required: true
        schema:
          $ref: '#/definitions/postApiV4ProjectsIdImportGit'
      responses:
        '201':
          description: Import a project from a Git URL
          schema:
            $ref: '#/definitions/API_Entities_ProjectImportStatus'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '400':
          description: Bad request
        '404':
          description: Not found
        '409':
          description: Conflict
        '422':
          description: Unprocessable Entity
      tags:
      - project_import
      operationId: postApiV4ProjectsIdImportGit
  /api/v4/projects/remote-import:
    post:
      summary: Create a new project import using a remote object storage path
      description: This feature was introduced in GitLab 13.2.
      produces:
      - application/json
      

# --- truncated at 32 KB (96 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/gitlab-ci/refs/heads/main/openapi/gitlab-ci-project-import-api-openapi.yml