导入 API

从 GitHub 导入仓库

通过 API 将项目从 GitHub 导入到极狐GitLab。

POST /import/github
参数 类型 是否必需 描述
personal_access_token string GitHub 个人访问令牌
repo_id integer GitHub 仓库 ID
new_name string 新仓库名称
target_namespace string 项目导入的命名空间。支持子群组,比如 /namespace/subgroup
github_hostname string 企业定制的 GitHub 访问地址。如果是 GitHub.com,则无需设置
optional_stages object 要导入的其他项目。引入于 15.5
curl --request POST \
  --url "https://gitlab.example.com/api/v4/import/github" \
  --header "content-type: application/json" \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --data '{
    "personal_access_token": "aBc123abC12aBc123abC12abC123+_A/c123",
    "repo_id": "12345",
    "target_namespace": "group/subgroup",
    "new_name": "NEW-NAME",
    "github_hostname": "https://github.example.com",
    "optional_stages": {
      "single_endpoint_issue_events_import": true,
      "single_endpoint_notes_import": true,
      "attachments_import": true
    }
}'

以下 key 可用于 optional_stages

  • single_endpoint_issue_events_import:用于议题和拉取请求事件导入。
  • single_endpoint_notes_import:用于替代和更彻底的评论导入。
  • attachments_import:用于 Markdown 附件导入。

有关详细信息,请参阅选择要导入的其他项目

响应示例:

{
    "id": 27,
    "name": "my-repo",
    "full_path": "/root/my-repo",
    "full_name": "Administrator / my-repo"
}

取消 GitHub 项目导入

引入于极狐GitLab 15.5。

使用 API 取消正在进行的 GitHub 项目导入。

POST /import/github/cancel
参数 类型 是否必需 描述
project_id integer yes 极狐GitLab 项目 ID
curl --request POST \
  --url "https://gitlab.example.com/api/v4/import/github/cancel" \
  --header "content-type: application/json" \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --data '{
    "project_id": 12345
}'

响应示例:

{
    "id": 160,
    "name": "my-repo",
    "full_path": "/root/my-repo",
    "full_name": "Administrator / my-repo",
    "import_source": "source/source-repo",
    "import_status": "canceled",
    "human_import_status_name": "canceled",
    "provider_link": "/source/source-repo"
}

返回以下状态码:

  • 200 OK:正在取消项目导入
  • 400 Bad Request:无法取消项目导入
  • 404 Not Found:与 project_id 关联的项目不存在

从 Bitbucket 服务器导入仓库

通过 API 将项目从 Bitbucket 服务器导入极狐GitLab。

noteBitbucket 项目密钥仅被用来在 Bitbucket 中查找仓库。如果你想将仓库导入极狐GitLab 群组,那么您必须要指定 target_namespace。如果您没有指定 target_namespace,项目将会被导入您个人的用户命名空间下。
POST /import/bitbucket_server
参数 类型 是否必需 描述
bitbucket_server_url string Bitbucket 服务器连接
bitbucket_server_username string Bitbucket 服务器用户名
personal_access_token string Bitbucket 服务器个人访问令牌/密码
bitbucket_server_project string Bitbucket 项目密钥
bitbucket_server_repo string Bitbucket 仓库名称
new_name string 新仓库名称
target_namespace string 项目导入的命名空间。支持子群组,比如 /namespace/subgroup
curl --request POST \
  --url "https://gitlab.example.com/api/v4/import/bitbucket_server" \
  --header "content-type: application/json" \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --data '{
    "bitbucket_server_url": "http://bitbucket.example.com",
    "bitbucket_server_username": "root",
    "personal_access_token": "Nzk4MDcxODY4MDAyOiP8y410zF3tGAyLnHRv/E0+3xYs",
    "bitbucket_server_project": "NEW",
    "bitbucket_server_repo": "my-repo"
}'