GitLab API — project_import
GitLab API — project_import. 19 operations. Lead operation: Import a BitBucket Cloud repository. Self-contained Naftiko capability covering one Gitlab Ci business surface.
What You Can Do
MCP Tools
import-bitbucket-cloud-repository
Import a BitBucket Cloud repository
import-bitbucket-server-repository
Import a BitBucket Server repository
import-github-project
Import a GitHub project
cancel-github-project-import
Cancel GitHub project import
create-new-project-import
Create a new project import
re-import-relation-project
Re-import a relation into a project
workhorse-authorize-project-relation-import
Workhorse authorize the project relation import upload
workhorse-authorize-project-import-upload
Workhorse authorize the project import upload
create-new-project-import-using
Create a new project import using a remote object storage path
create-new-project-import-using-2
Create a new project import using a file from AWS S3
get-export-status
Get export status
start-export
Start export
download-export
Download export
start-relations-export
Start relations export
download-relations-export
Download relations export
relations-export-status
Relations export status
get-project-import-status
Get a project import status
import-project-git-url
Import a project from a Git URL
get-statuses-relation-imports-specified
Get the statuses of relation imports for specified project
Capability Spec
naftiko: 1.0.0-alpha2
info:
label: GitLab API — project_import
description: 'GitLab API — project_import. 19 operations. Lead operation: Import a BitBucket Cloud repository. Self-contained
Naftiko capability covering one Gitlab Ci business surface.'
tags:
- Gitlab Ci
- project_import
created: '2026-05-19'
modified: '2026-05-19'
binds:
- namespace: env
keys:
GITLAB_CI_API_KEY: GITLAB_CI_API_KEY
capability:
consumes:
- type: http
namespace: gitlab-ci-project-import
baseUri: https://gitlab.com
description: GitLab API — project_import business capability. Self-contained, no shared references.
resources:
- name: api-v4-import-bitbucket
path: /api/v4/import/bitbucket
operations:
- name: postapiv4importbitbucket
method: POST
description: Import a BitBucket Cloud repository
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: postApiV4ImportBitbucket
in: body
type: string
required: true
- name: api-v4-import-bitbucket_server
path: /api/v4/import/bitbucket_server
operations:
- name: postapiv4importbitbucketserver
method: POST
description: Import a BitBucket Server repository
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: postApiV4ImportBitbucketServer
in: body
type: string
required: true
- name: api-v4-import-github
path: /api/v4/import/github
operations:
- name: postapiv4importgithub
method: POST
description: Import a GitHub project
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: postApiV4ImportGithub
in: body
type: string
required: true
- name: api-v4-import-github-cancel
path: /api/v4/import/github/cancel
operations:
- name: postapiv4importgithubcancel
method: POST
description: Cancel GitHub project import
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: postApiV4ImportGithubCancel
in: body
type: string
required: true
- name: api-v4-projects-import
path: /api/v4/projects/import
operations:
- name: postapiv4projectsimport
method: POST
description: Create a new project import
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: path
in: formData
type: string
description: The new project path and name
required: true
- name: file
in: formData
type: file
description: The project export file to be imported
required: true
- name: name
in: formData
type: string
description: The name of the project to be imported. Defaults to the path of the project if not provided.
- name: namespace
in: formData
type: string
description: (deprecated) The ID or path of the namespace to import the project to. Defaults to the current user's
namespace.
- name: namespace_id
in: formData
type: integer
description: The ID of the namespace that the project will be imported into. Defaults to the current user's namespace.
- name: namespace_path
in: formData
type: string
description: The path of the namespace that the project will be imported into. Defaults to the current user's namespace.
- name: overwrite
in: formData
type: boolean
description: If there is a project in the same namespace and with the same name overwrite it
- name: override_params[description]
in: formData
type: string
description: The description of the project
- name: override_params[build_git_strategy]
in: formData
type: string
description: The Git strategy. Defaults to `fetch`
- name: override_params[build_timeout]
in: formData
type: integer
description: Build timeout
- name: override_params[auto_cancel_pending_pipelines]
in: formData
type: string
description: Auto-cancel pending pipelines
- name: override_params[ci_config_path]
in: formData
type: string
description: The path to CI config file. Defaults to `.gitlab-ci.yml`
- name: override_params[service_desk_enabled]
in: formData
type: boolean
description: Disable or enable the service desk
- name: override_params[issues_enabled]
in: formData
type: boolean
description: Flag indication if the issue tracker is enabled
- name: override_params[merge_requests_enabled]
in: formData
type: boolean
description: Flag indication if merge requests are enabled
- name: override_params[wiki_enabled]
in: formData
type: boolean
description: Flag indication if the wiki is enabled
- name: override_params[jobs_enabled]
in: formData
type: boolean
description: Flag indication if jobs are enabled
- name: override_params[snippets_enabled]
in: formData
type: boolean
description: Flag indication if snippets are enabled
- name: override_params[issues_access_level]
in: formData
type: string
description: Issues access level. One of `disabled`, `private` or `enabled`
- name: override_params[repository_access_level]
in: formData
type: string
description: Repository access level. One of `disabled`, `private` or `enabled`
- name: override_params[merge_requests_access_level]
in: formData
type: string
description: Merge requests access level. One of `disabled`, `private` or `enabled`
- name: override_params[forking_access_level]
in: formData
type: string
description: Forks access level. One of `disabled`, `private` or `enabled`
- name: override_params[wiki_access_level]
in: formData
type: string
description: Wiki access level. One of `disabled`, `private` or `enabled`
- name: override_params[builds_access_level]
in: formData
type: string
description: Builds access level. One of `disabled`, `private` or `enabled`
- name: override_params[snippets_access_level]
in: formData
type: string
description: Snippets access level. One of `disabled`, `private` or `enabled`
- name: override_params[package_registry_access_level]
in: formData
type: string
description: Controls visibility of the package registry. One of `disabled`, `private`, `enabled` or `public`. `private`
will make the package registry accessible only to pr
- name: override_params[pages_access_level]
in: formData
type: string
description: Pages access level. One of `disabled`, `private`, `enabled` or `public`
- name: override_params[analytics_access_level]
in: formData
type: string
description: Analytics access level. One of `disabled`, `private` or `enabled`
- name: override_params[container_registry_access_level]
in: formData
type: string
description: 'Controls visibility of the container registry. One of `disabled`, `private` or `enabled`. `private`
will make the container registry accessible only to project '
- name: override_params[security_and_compliance_access_level]
in: formData
type: string
description: Security and compliance access level. One of `disabled`, `private` or `enabled`
- name: override_params[releases_access_level]
in: formData
type: string
description: Releases access level. One of `disabled`, `private` or `enabled`
- name: override_params[environments_access_level]
in: formData
type: string
description: Environments access level. One of `disabled`, `private` or `enabled`
- name: override_params[feature_flags_access_level]
in: formData
type: string
description: Feature flags access level. One of `disabled`, `private` or `enabled`
- name: override_params[infrastructure_access_level]
in: formData
type: string
description: Infrastructure access level. One of `disabled`, `private` or `enabled`
- name: override_params[monitor_access_level]
in: formData
type: string
description: Monitor access level. One of `disabled`, `private` or `enabled`
- name: override_params[model_experiments_access_level]
in: formData
type: string
description: Model experiments access level. One of `disabled`, `private` or `enabled`
- name: override_params[model_registry_access_level]
in: formData
type: string
description: Model registry access level. One of `disabled`, `private` or `enabled`
- name: override_params[emails_disabled]
in: formData
type: boolean
description: 'Deprecated: Use emails_enabled instead.'
- name: override_params[emails_enabled]
in: formData
type: boolean
description: Enable email notifications
- name: override_params[show_default_award_emojis]
in: formData
type: boolean
description: Show default award emojis
- name: override_params[show_diff_preview_in_email]
in: formData
type: boolean
description: Include the code diff preview in merge request notification emails
- name: override_params[warn_about_potentially_unwanted_characters]
in: formData
type: boolean
description: Warn about potentially unwanted characters
- name: override_params[enforce_auth_checks_on_uploads]
in: formData
type: boolean
description: Enforce auth check on uploads
- name: override_params[shared_runners_enabled]
in: formData
type: boolean
description: Flag indication if shared runners are enabled for that project
- name: override_params[group_runners_enabled]
in: formData
type: boolean
description: Flag indication if group runners are enabled for that project
- name: override_params[resource_group_default_process_mode]
in: formData
type: string
description: The process mode of the resource group
- name: override_params[resolve_outdated_diff_discussions]
in: formData
type: boolean
description: Automatically resolve merge request diff threads on lines changed with a push
- name: override_params[remove_source_branch_after_merge]
in: formData
type: boolean
description: Remove the source branch by default after merge
- name: override_params[packages_enabled]
in: formData
type: boolean
description: 'Deprecated: Use :package_registry_access_level instead. Enable project packages feature'
- name: override_params[container_registry_enabled]
in: formData
type: boolean
description: 'Deprecated: Use :container_registry_access_level instead. Flag indication if the container registry
is enabled for that project'
- name: override_params[container_expiration_policy_attributes][cadence]
in: formData
type: string
description: Container expiration policy cadence for recurring job
- name: override_params[container_expiration_policy_attributes][keep_n]
in: formData
type: integer
description: Container expiration policy number of images to keep
- name: override_params[container_expiration_policy_attributes][older_than]
in: formData
type: string
description: Container expiration policy remove images older than value
- name: override_params[container_expiration_policy_attributes][name_regex]
in: formData
type: string
description: Container expiration policy regex for image removal
- name: override_params[container_expiration_policy_attributes][name_regex_keep]
in: formData
type: string
description: Container expiration policy regex for image retention
- name: override_params[container_expiration_policy_attributes][enabled]
in: formData
type: boolean
description: Flag indication if container expiration policy is enabled
- name: override_params[lfs_enabled]
in: formData
type: boolean
description: Flag indication if Git LFS is enabled for that project
- name: override_params[visibility]
in: formData
type: string
description: The visibility of the project.
- name: override_params[public_builds]
in: formData
type: boolean
description: 'Deprecated: Use public_jobs instead.'
- name: override_params[public_jobs]
in: formData
type: boolean
description: Perform public builds
- name: override_params[request_access_enabled]
in: formData
type: boolean
description: Allow users to request member access
- name: override_params[only_allow_merge_if_pipeline_succeeds]
in: formData
type: boolean
description: Only allow to merge if builds succeed
- name: override_params[allow_merge_on_skipped_pipeline]
in: formData
type: boolean
description: Allow to merge if pipeline is skipped
- name: override_params[only_allow_merge_if_all_discussions_are_resolved]
in: formData
type: boolean
description: Only allow to merge if all threads are resolved
- name: override_params[tag_list]
in: formData
type: array
description: 'Deprecated: Use :topics instead'
- name: override_params[topics]
in: formData
type: array
description: The list of topics for a project
- name: override_params[avatar]
in: formData
type: file
description: Avatar image for project
- name: override_params[printing_merge_request_link_enabled]
in: formData
type: boolean
description: Show link to create/view merge request when pushing from the command line
- name: override_params[merge_method]
in: formData
type: string
description: The merge method used when merging merge requests
- name: override_params[suggestion_commit_message]
in: formData
type: string
description: The commit message used to apply merge request suggestions
- name: override_params[merge_commit_template]
in: formData
type: string
description: Template used to create merge commit message
- name: override_params[squash_commit_template]
in: formData
type: string
description: Template used to create squash commit message
- name: override_params[issue_branch_template]
in: formData
type: string
description: Template used to create a branch from an issue
- name: override_params[auto_devops_enabled]
in: formData
type: boolean
description: Flag indication if Auto DevOps is enabled
- name: override_params[auto_devops_deploy_strategy]
in: formData
type: string
description: Auto Deploy strategy
- name: override_params[autoclose_referenced_issues]
in: formData
type: boolean
description: Flag indication if referenced issues auto-closing is enabled
- name: override_params[repository_storage]
in: formData
type: string
description: Which storage shard the repository is on. Available only to admins
- name: override_params[squash_option]
in: formData
type: string
description: Squash default for project. One of `never`, `always`, `default_on`, or `default_off`.
- name: override_params[mr_default_target_self]
in: formData
type: boolean
description: Merge requests of this forked project targets itself by default
- name: override_params[mr_default_title_template]
in: formData
type: string
description: Template used to generate the default merge request title. Maximum 100 characters.
- name: override_params[only_allow_merge_if_all_status_checks_passed]
in: formData
type: boolean
description: Blocks merge requests from merging unless all status checks have passed
- name: override_params[approvals_before_merge]
in: formData
type: integer
description: How many approvers should approve merge request by default
- name: override_params[mirror]
in: formData
type: boolean
description: '[Deprecated] Enables pull mirroring in a project'
- name: override_params[mirror_trigger_builds]
in: formData
type: boolean
description: '[Deprecated] Pull mirroring triggers builds'
- name: override_params[external_authorization_classification_label]
in: formData
type: string
description: The classification label for the project
- name: override_params[requirements_access_level]
in: formData
type: string
description: Requirements feature access level. One of `disabled`, `private` or `enabled`
- name: override_params[prevent_merge_without_jira_issue]
in: formData
type: boolean
description: Require an associated issue from Jira
- name: override_params[auto_duo_code_review_enabled]
in: formData
type: boolean
description: Enable automatic reviews by GitLab Duo on merge requests
- name: override_params[duo_remote_flows_enabled]
in: formData
type: boolean
description: Enable GitLab Duo remote flows for this project
- name: override_params[duo_sast_fp_detection_enabled]
in: formData
type: boolean
description: Enable GitLab Duo SAST false positive detection for this project
- name: override_params[duo_secret_detection_fp_enabled]
in: formData
type: boolean
description: Enable GitLab Duo Secret Detection false positive detection for this project
- name: override_params[duo_sast_vr_workflow_enabled]
in: formData
type: boolean
description: Enable GitLab Duo SAST vulnerability resolution workflow for this project
- name: override_params[spp_repository_pipeline_access]
in: formData
type: boolean
description: Grant read-only access to security policy configurations for enforcement in linked CI/CD projects
- name: override_params[merge_request_title_regex]
in: formData
type: string
description: The regex the Merge Request must adhere to
- name: override_params[merge_request_title_regex_description]
in: formData
type: string
description: The description for the regex the Merge Request must adhere to
- name: file.path
in: formData
type: string
description: Path to locally stored body (generated by Workhorse)
- name: file.name
in: formData
type: string
description: Real filename as send in Content-Disposition (generated by Workhorse)
- name: file.type
in: formData
type: string
description: Real content type as send in Content-Type (generated by Workhorse)
- name: file.size
in: formData
type: integer
description: Real size of file (generated by Workhorse)
- name: file.md5
in: formData
type: string
description: MD5 checksum of the file (generated by Workhorse)
- name: file.sha1
in: formData
type: string
description: SHA1 checksum of the file (generated by Workhorse)
- name: file.sha256
in: formData
type: string
description: SHA256 checksum of the file (generated by Workhorse)
- name: file.etag
in: formData
type: string
description: Etag of the file (generated by Workhorse)
- name: file.remote_id
in: formData
type: string
description: Remote_id of the file (generated by Workhorse)
- name: file.remote_url
in: formData
type: string
description: Remote_url of the file (generated by Workhorse)
- name: api-v4-projects-import-relation
path: /api/v4/projects/import-relation
operations:
- name: postapiv4projectsimportrelation
method: POST
description: Re-import a relation into a project
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: path
in: formData
type: string
description: The project path and name
required: true
- name: file
in: formData
type: file
description: The project export file from which to extract the relation.
required: true
- name: relation
in: formData
type: string
description: The relation to import. Must be one of issues, merge_requests, ci_pipelines, or milestones.
required: true
- name: file.path
in: formData
type: string
description: Path to locally stored body (generated by Workhorse)
- name: file.name
in: formData
type: string
description: Real filename as sent in Content-Disposition (generated by Workhorse)
- name: file.type
in: formData
type: string
description: Real content type as send in Content-Type (generated by Workhorse)
- name: file.size
in: formData
type: integer
description: Real size of file (generated by Workhorse)
- name: file.md5
in: formData
type: string
description: MD5 checksum of the file (generated by Workhorse)
- name: file.sha1
in: formData
type: string
description: SHA1 checksum of the file (generated by Workhorse)
- name: file.sha256
in: formData
type: string
description: SHA256 checksum of the file (generated by Workhorse)
- name: file.etag
in: formData
type: string
description: Etag of the file (generated by Workhorse)
- name: file.remote_id
in: formData
type: string
description: Remote_id of the file (generated by Workhorse)
- name: file.remote_url
in: formData
type: string
description: Remote_url of the file (generated by Workhorse)
- name: api-v4-projects-import-relation-authorize
path: /api/v4/projects/import-relation/authorize
operations:
- name: postapiv4projectsimportrelationauthorize
method: POST
description: Workhorse authorize the project relation import upload
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: api-v4-projects-import-authorize
path: /api/v4/projects/import/authorize
operations:
- name: postapiv4projectsimportauthorize
method: POST
description: Workhorse authorize the project import upload
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: api-v4-projects-remote-import
path: /api/v4/projects/remote-import
operations:
- name: postapiv4projectsremoteimport
method: POST
description: Create a new project import using a remote object storage path
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: url
in: formData
type: string
description: The URL for the file.
required: true
- name: path
in: formData
type: string
description: The new project path and name
required: true
- name: name
in: formData
type: string
description: The name of the project to be imported. Defaults to the path of the project if not provided.
- name: namespace
in: formData
type: string
description: (deprecated) The ID or path of the namespace to import the project to. Defaults to the current user's
namespace.
- name: namespace_id
in: formData
type: integer
description: The ID of the namespace that the project will be imported into. Defaults to the current user's namespace.
- name: namespace_path
in: formData
type: string
description: The path of the namespace that the project will be imported into. Defaults to the current user's namespace.
- name: overwrite
in: formData
type: boolean
description: If there is a project in the same namespace and with the same name overwrite it
- name: override_params[description]
in: formData
type: string
description: The description of the project
- name: override_params[build_git_strategy]
in: formData
type: string
description: The Git strategy. Defaults to `fetch`
- name: override_params[build_timeout]
in: formData
type: integer
description: Build timeout
- name: override_params[auto_cancel_pending_pipelines]
in: formData
type: string
description: Auto-cancel pending pipelines
- name: override_params[ci_config_path]
in: formData
type: string
description: The path to CI config file. Defaults to `.gitlab-ci.yml`
- name: override_params[service_desk_enabled]
in: formData
type: boolean
description: Disable or enable the service desk
- name: override_params[issues_enabled]
in: formData
type: boolean
description: Flag indication if the issue tracker is enabled
- name: override_params[merge_requests_enabled]
in: formData
type: boolean
description: Flag indication if merge requests are enabled
- name: override_params[wiki_enabled]
in: formData
type: boolean
description: Flag indication if the wiki is enabled
- name: override_params[jobs_enabled]
in: formData
type: boolean
description: Flag indication if jobs are enabled
- name: override_params[snippets_enabled]
in: formData
type: boolean
description: Flag indication if snippets are enabled
- name: override_params[issues_access_level]
in: formData
type: string
description: Issues access level. One of `disabled`, `private` or `enabled`
- name: override_params[repository_access_level]
in: formData
type: string
description: Repository access level. One of `disabled`, `private` or `enabled`
- name: override_params[merge_requests_access_level]
in: formData
type: string
description: Merge requests access level. One of `disabled`, `private` or `enabled`
- name: override_params[forking_access_level]
in: formData
type: string
description: Forks access level. One of `disabled`, `private` or `enabled`
- name: override_params[wiki_access_level]
in: formData
type: string
description: Wiki access level. One of `disabled`, `private` or `enabled`
- name: override_params[builds_access_level]
in: formData
type: string
description: Builds access level. One of `disabled`, `private` or `enabled`
- name: override_params[snippets_access_level]
in: formData
type: string
description: Snippets access level. One of `disabled`, `private` or `enabled`
- name: override_params[package_registry_access_level]
in: formData
type: string
description: Controls visibility of the package registry. One of `disabled`, `private`, `enabled` or `public`. `private`
will make the package registry accessible only to pr
- name: override_params[pages_access_level]
in: formData
type: string
description: Pages access level. One of `disabled`, `private`, `enabled` or `public`
- name: override_params[analytics_access_level]
in: formData
type: string
description: Analytics access level. One of `disabled`, `private` or `enabled`
- name: override_params[container_registry_access_level]
in: formData
type: string
description: 'Controls visibility of the container registry. One of `disabled`, `private` or `enabled`. `private`
will make the container registry accessible only to project '
- name: override_params[security_and_compliance_access_level]
in: formData
type: string
description: Security and compliance access level. One of `disabled`, `private` or `enabled`
- name: override_params[releases_access_level]
in: formData
type: string
description: Releases access level. One of `disabled`, `private` or `enabled`
- name: override_params[environments_access_level]
in: formData
type: string
description: Environments access level. One of `disabled`, `private` or `enabled`
- name: override_params[feature_flags_access_level]
in: formData
type: string
description: Feature flags access level. One of `disabled`, `private` or `enabled`
- name: override_params[infrastructure_access_level]
in: formData
type: string
description: Infrastructure access level. One of `disabled`, `private` or `enabled`
- name: override_params[monitor_access_level]
in: formData
type: string
description: Monitor access level. One of `disabled`, `private` or `enabled`
- name: override_params[model_experiments_access_level]
in: formData
type: string
description: Model experiments access level. One of `disabled`, `private` or `enabled`
- name: override_params[model_registry_access_level]
in: formData
type: string
description: Model registry access level. One of `disabled`, `private` or `enabled`
- name: override_params[emails_disabled]
in: formData
type: boolean
description: 'Deprecated: Use emails_enabled instead.'
- name: override_params[emails_enabled]
in: formData
type: boolean
description: Enable email notificati
# --- truncated at 32 KB (137 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/gitlab-ci/refs/heads/main/capabilities/gitlab-ci-project-import.yaml