2020-10-28 15:08:49 +00:00
---
2021-04-23 15:09:37 +00:00
stage: Manage
group: Import
2020-11-26 06:09:20 +00:00
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments
2020-10-28 15:08:49 +00:00
---
2019-01-17 10:37:08 +00:00
# Import API
## Import repository from GitHub
Import your projects from GitHub to GitLab via the API.
2020-02-27 09:09:01 +00:00
```plaintext
2019-01-17 10:37:08 +00:00
POST /import/github
```
| Attribute | Type | Required | Description |
|------------|---------|----------|---------------------|
| `personal_access_token` | string | yes | GitHub personal access token |
| `repo_id` | integer | yes | GitHub repository ID |
2020-04-24 15:09:37 +00:00
| `new_name` | string | no | New repository name |
2020-10-24 00:08:35 +00:00
| `target_namespace` | string | yes | Namespace to import repository into. Supports subgroups like `/namespace/subgroup` . |
2020-10-28 03:08:41 +00:00
| `github_hostname` | string | no | Custom GitHub enterprise hostname. Defaults to GitHub.com if `github_hostname` is not set. |
2019-01-17 10:37:08 +00:00
2020-01-30 15:09:15 +00:00
```shell
2020-10-28 00:08:34 +00:00
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"
}'
2019-01-17 10:37:08 +00:00
```
Example response:
```json
{
"id": 27,
"name": "my-repo",
"full_path": "/root/my-repo",
"full_name": "Administrator / my-repo"
}
```
2020-07-06 18:09:13 +00:00
## Import repository from Bitbucket Server
Import your projects from Bitbucket Server to GitLab via the API.
2020-12-04 21:09:29 +00:00
NOTE:
2020-07-06 18:09:13 +00:00
The Bitbucket Project Key is only used for finding the repository in Bitbucket.
You must specify a `target_namespace` if you want to import the repository to a GitLab group.
2020-11-19 21:09:07 +00:00
If you do not specify `target_namespace` , the project imports to your personal user namespace.
2020-07-06 18:09:13 +00:00
```plaintext
POST /import/bitbucket_server
```
| Attribute | Type | Required | Description |
|------------|---------|----------|---------------------|
| `bitbucket_server_url` | string | yes | Bitbucket Server URL |
| `bitbucket_server_username` | string | yes | Bitbucket Server Username |
| `personal_access_token` | string | yes | Bitbucket Server personal access token/password |
| `bitbucket_server_project` | string | yes | Bitbucket Project Key |
| `bitbucket_server_repo` | string | yes | Bitbucket Repository Name |
2020-10-16 00:08:56 +00:00
| `new_name` | string | no | New repository name |
2020-10-24 00:08:35 +00:00
| `target_namespace` | string | no | Namespace to import repository into. Supports subgroups like `/namespace/subgroup` |
2020-07-06 18:09:13 +00:00
```shell
curl --request POST \
2020-12-08 09:09:41 +00:00
--url "https://gitlab.example.com/api/v4/import/bitbucket_server" \
2020-07-06 18:09:13 +00:00
--header "content-type: application/json" \
2021-01-11 06:10:29 +00:00
--header "PRIVATE-TOKEN: < your_access_token > " \
2020-07-06 18:09:13 +00:00
--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"
}'
```