Project Aliases API
- Tier: Premium, Ultimate
- Offering: GitLab Self-Managed, GitLab Dedicated
Use this API to manage project aliases. After you create an alias for a project, users can clone the repository with the alias, which can be helpful when migrating repositories.
All methods require administrator authorization.
List all project aliases
Get a list of all project aliases:
GET /project_aliasesIf successful, returns 200 OK and the following
response attributes:
| Attribute | Type | Description | 
|---|---|---|
| id | integer | ID of the project alias. | 
| name | string | Name of the alias. | 
| project_id | integer | ID of the associated project. | 
Example request:
curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/project_aliases"Example response:
[
  {
    "id": 1,
    "project_id": 1,
    "name": "gitlab-foss"
  },
  {
    "id": 2,
    "project_id": 2,
    "name": "gitlab"
  }
]Get project alias details
Get details of a project alias:
GET /project_aliases/:nameSupported attributes:
| Attribute | Type | Required | Description | 
|---|---|---|---|
| name | string | Yes | The name of the alias. | 
If successful, returns 200 OK and the following
response attributes:
| Attribute | Type | Description | 
|---|---|---|
| id | integer | ID of the project alias. | 
| name | string | Name of the alias. | 
| project_id | integer | ID of the associated project. | 
Example request:
curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/project_aliases/gitlab"Example response:
{
  "id": 1,
  "project_id": 1,
  "name": "gitlab"
}Create a project alias
Add a new alias for a project:
POST /project_aliasesSupported attributes:
| Attribute | Type | Required | Description | 
|---|---|---|---|
| name | string | Yes | Name of the alias. Must be unique. | 
| project_id | integer or string | Yes | ID or path of the project. | 
If successful, returns 201 Created and the following
response attributes:
| Attribute | Type | Description | 
|---|---|---|
| id | integer | ID of the project alias. | 
| name | string | Name of the alias. | 
| project_id | integer | ID of the associated project. | 
Example request:
curl --request POST \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/project_aliases" \
  --form "project_id=1" \
  --form "name=gitlab"You can also use the project path:
curl --request POST \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/project_aliases" \
  --form "project_id=gitlab-org/gitlab" \
  --form "name=gitlab"Example response:
{
  "id": 1,
  "project_id": 1,
  "name": "gitlab"
}Delete a project alias
Remove a project alias:
DELETE /project_aliases/:nameSupported attributes:
| Attribute | Type | Required | Description | 
|---|---|---|---|
| name | string | Yes | Name of the alias. | 
If successful, returns 204 No Content.
Example request:
curl --request DELETE \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/project_aliases/gitlab"