Release links API

Introduced in GitLab 11.7.

Using this API you can manipulate GitLab's Release links. For manipulating other Release assets, see Release API. GitLab supports links to http, https, and ftp assets.

Get links

Get assets as links from a Release.

GET /projects/:id/releases/:tag_name/assets/links
Attribute Type Required Description
id integer/string yes The ID or URL-encoded path of the project.
tag_name string yes The tag associated with the Release.

Example request:

curl --header "PRIVATE-TOKEN: n671WNGecHugsdEDPsyo" "https://gitlab.example.com/api/v4/projects/24/releases/v0.1/assets/links"

Example response:

[
   {
      "id":2,
      "name":"awesome-v0.2.msi",
      "url":"http://192.168.10.15:3000/msi",
      "external":true,
      "link_type":"other"
   },
   {
      "id":1,
      "name":"awesome-v0.2.dmg",
      "url":"http://192.168.10.15:3000",
      "external":true,
      "link_type":"other"
   }
]

Get a link

Get an asset as a link from a Release.

GET /projects/:id/releases/:tag_name/assets/links/:link_id
Attribute Type Required Description
id integer/string yes The ID or URL-encoded path of the project.
tag_name string yes The tag associated with the Release.
link_id integer yes The ID of the link.

Example request:

curl --header "PRIVATE-TOKEN: n671WNGecHugsdEDPsyo" "https://gitlab.example.com/api/v4/projects/24/releases/v0.1/assets/links/1"

Example response:

{
   "id":1,
   "name":"awesome-v0.2.dmg",
   "url":"http://192.168.10.15:3000",
   "external":true,
   "link_type":"other"
}

Create a link

Create an asset as a link from a Release.

POST /projects/:id/releases/:tag_name/assets/links
Attribute Type Required Description
id integer/string yes The ID or URL-encoded path of the project.
tag_name string yes The tag associated with the Release.
name string yes The name of the link.
url string yes The URL of the link.
link_type string no The type of the link: other, runbook, image, package. Defaults to other.

Example request:

curl --request POST \
     --header "PRIVATE-TOKEN: n671WNGecHugsdEDPsyo" \
     --data name="awesome-v0.2.dmg" \
     --data url="http://192.168.10.15:3000" \
     "https://gitlab.example.com/api/v4/projects/24/releases/v0.1/assets/links"

Example response:

{
   "id":1,
   "name":"awesome-v0.2.dmg",
   "url":"http://192.168.10.15:3000",
   "external":true,
   "link_type":"other"
}

Update a link

Update an asset as a link from a Release.

PUT /projects/:id/releases/:tag_name/assets/links/:link_id
Attribute Type Required Description
id integer/string yes The ID or URL-encoded path of the project.
tag_name string yes The tag associated with the Release.
link_id integer yes The ID of the link.
name string no The name of the link.
url string no The URL of the link.
link_type string no The type of the link: other, runbook, image, package. Defaults to other.

NOTE: NOTE You have to specify at least one of name or url

Example request:

curl --request PUT --data name="new name" --data link_type="runbook" --header "PRIVATE-TOKEN: n671WNGecHugsdEDPsyo" "https://gitlab.example.com/api/v4/projects/24/releases/v0.1/assets/links/1"

Example response:

{
   "id":1,
   "name":"new name",
   "url":"http://192.168.10.15:3000",
   "external":true,
   "link_type":"runbook"
}

Delete a link

Delete an asset as a link from a Release.

DELETE /projects/:id/releases/:tag_name/assets/links/:link_id
Attribute Type Required Description
id integer/string yes The ID or URL-encoded path of the project.
tag_name string yes The tag associated with the Release.
link_id integer yes The ID of the link.

Example request:

curl --request DELETE --header "PRIVATE-TOKEN: n671WNGecHugsdEDPsyo" "https://gitlab.example.com/api/v4/projects/24/releases/v0.1/assets/links/1"

Example response:

{
   "id":1,
   "name":"new name",
   "url":"http://192.168.10.15:3000",
   "external":true,
   "link_type":"other"
}