debian-mirror-gitlab/doc/api/tags.md

181 lines
6.5 KiB
Markdown
Raw Normal View History

2020-10-24 23:57:45 +05:30
---
stage: Create
group: Source Code
2021-02-22 17:27:13 +05:30
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-24 23:57:45 +05:30
type: reference, api
---
2021-03-11 19:13:27 +05:30
# Tags API **(FREE)**
2015-11-26 14:37:03 +05:30
## List project repository tags
2017-08-17 22:00:37 +05:30
Get a list of repository tags from a project, sorted by name in reverse
alphabetical order. This endpoint can be accessed without authentication if the
repository is publicly accessible.
2015-11-26 14:37:03 +05:30
2020-04-08 14:13:33 +05:30
```plaintext
2015-11-26 14:37:03 +05:30
GET /projects/:id/repository/tags
```
Parameters:
2018-03-17 18:26:18 +05:30
| Attribute | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
2021-09-30 23:02:18 +05:30
| `id` | integer/string| yes | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user|
2018-03-17 18:26:18 +05:30
| `order_by` | string | no | Return tags ordered by `name` or `updated` fields. Default is `updated` |
| `sort` | string | no | Return tags sorted in `asc` or `desc` order. Default is `desc` |
2019-12-26 22:10:19 +05:30
| `search` | string | no | Return list of tags matching the search criteria. You can use `^term` and `term$` to find tags that begin and end with `term` respectively. |
2019-03-02 22:35:43 +05:30
2020-06-23 00:09:42 +05:30
> Support for `search` was [introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/issues/54401) in GitLab 11.8.
2015-11-26 14:37:03 +05:30
```json
[
{
"commit": {
2017-09-10 17:25:29 +05:30
"id": "2695effb5807a22ff3d138d593fd856244e155e7",
"short_id": "2695effb",
"title": "Initial commit",
"created_at": "2017-07-26T11:08:53.000+02:00",
"parent_ids": [
"2a4b78934375d7f53875269ffd4f45fd83a84ebe"
],
"message": "Initial commit",
2015-11-26 14:37:03 +05:30
"author_name": "John Smith",
"author_email": "john@example.com",
"authored_date": "2012-05-28T04:42:42-07:00",
"committer_name": "Jack Smith",
"committer_email": "jack@example.com",
2017-09-10 17:25:29 +05:30
"committed_date": "2012-05-28T04:42:42-07:00"
2015-11-26 14:37:03 +05:30
},
"release": {
"tag_name": "1.0.0",
"description": "Amazing release. Wow"
},
"name": "v1.0.0",
2018-10-15 14:42:47 +05:30
"target": "2695effb5807a22ff3d138d593fd856244e155e7",
2019-12-04 20:38:33 +05:30
"message": null,
"protected": true
2015-11-26 14:37:03 +05:30
}
]
```
2016-06-02 11:05:42 +05:30
## Get a single repository tag
2017-08-17 22:00:37 +05:30
Get a specific repository tag determined by its name. This endpoint can be
accessed without authentication if the repository is publicly accessible.
2016-06-02 11:05:42 +05:30
2020-04-08 14:13:33 +05:30
```plaintext
2016-06-02 11:05:42 +05:30
GET /projects/:id/repository/tags/:tag_name
```
Parameters:
| Attribute | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
2021-09-30 23:02:18 +05:30
| `id` | integer/string | yes | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user |
2016-06-02 11:05:42 +05:30
| `tag_name` | string | yes | The name of the tag |
2020-03-13 15:44:24 +05:30
```shell
2020-06-23 00:09:42 +05:30
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/repository/tags/v1.0.0"
2016-06-02 11:05:42 +05:30
```
Example Response:
```json
{
"name": "v5.0.0",
"message": null,
2018-10-15 14:42:47 +05:30
"target": "60a8ff033665e1207714d6670fcd7b65304ec02f",
2016-06-02 11:05:42 +05:30
"commit": {
"id": "60a8ff033665e1207714d6670fcd7b65304ec02f",
2017-09-10 17:25:29 +05:30
"short_id": "60a8ff03",
"title": "Initial commit",
"created_at": "2017-07-26T11:08:53.000+02:00",
2016-06-02 11:05:42 +05:30
"parent_ids": [
"f61c062ff8bcbdb00e0a1b3317a91aed6ceee06b"
],
2017-09-10 17:25:29 +05:30
"message": "v5.0.0\n",
2016-06-02 11:05:42 +05:30
"author_name": "Arthur Verschaeve",
"author_email": "contact@arthurverschaeve.be",
2017-09-10 17:25:29 +05:30
"authored_date": "2015-02-01T21:56:31.000+01:00",
2016-06-02 11:05:42 +05:30
"committer_name": "Arthur Verschaeve",
2017-09-10 17:25:29 +05:30
"committer_email": "contact@arthurverschaeve.be",
"committed_date": "2015-02-01T21:56:31.000+01:00"
2016-06-02 11:05:42 +05:30
},
2019-12-04 20:38:33 +05:30
"release": null,
"protected": false
2016-06-02 11:05:42 +05:30
}
```
2015-11-26 14:37:03 +05:30
## Create a new tag
Creates a new tag in the repository that points to the supplied ref.
2020-04-08 14:13:33 +05:30
```plaintext
2015-11-26 14:37:03 +05:30
POST /projects/:id/repository/tags
```
Parameters:
2020-11-24 15:15:51 +05:30
| Attribute | Type | Required | Description |
| --------------------- | -------------- | -------- | --------------------------------------------------------------------------------------------------------------- |
2021-09-30 23:02:18 +05:30
| `id` | integer/string | yes | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user |
2020-11-24 15:15:51 +05:30
| `tag_name` | string | yes | The name of a tag |
| `ref` | string | yes | Create tag using commit SHA, another tag name, or branch name |
| `message` | string | no | Creates annotated tag |
2015-11-26 14:37:03 +05:30
2020-03-13 15:44:24 +05:30
```shell
2019-12-21 20:55:43 +05:30
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/repository/tags?tag_name=test&ref=master"
```
Example response:
2015-11-26 14:37:03 +05:30
```json
{
"commit": {
2017-09-10 17:25:29 +05:30
"id": "2695effb5807a22ff3d138d593fd856244e155e7",
"short_id": "2695effb",
"title": "Initial commit",
"created_at": "2017-07-26T11:08:53.000+02:00",
"parent_ids": [
"2a4b78934375d7f53875269ffd4f45fd83a84ebe"
],
"message": "Initial commit",
2015-11-26 14:37:03 +05:30
"author_name": "John Smith",
"author_email": "john@example.com",
"authored_date": "2012-05-28T04:42:42-07:00",
"committer_name": "Jack Smith",
"committer_email": "jack@example.com",
2017-09-10 17:25:29 +05:30
"committed_date": "2012-05-28T04:42:42-07:00"
2015-11-26 14:37:03 +05:30
},
2021-09-04 01:27:46 +05:30
"release": null,
2015-11-26 14:37:03 +05:30
"name": "v1.0.0",
2018-12-13 13:39:08 +05:30
"target": "2695effb5807a22ff3d138d593fd856244e155e7",
2019-12-04 20:38:33 +05:30
"message": null,
"protected": false
2015-11-26 14:37:03 +05:30
}
```
2019-09-30 21:07:59 +05:30
2021-04-17 20:07:23 +05:30
The message is `null` when creating a lightweight tag. Otherwise, it contains the annotation.
2015-11-26 14:37:03 +05:30
2021-04-17 20:07:23 +05:30
The target contains the tag objects ID when creating annotated tags,
otherwise it contains the commit ID when creating lightweight tags.
2018-10-15 14:42:47 +05:30
2017-08-17 22:00:37 +05:30
In case of an error,
status code `405` with an explaining error message is returned.
2015-11-26 14:37:03 +05:30
## Delete a tag
2017-08-17 22:00:37 +05:30
Deletes a tag of a repository with given name.
2020-04-08 14:13:33 +05:30
```plaintext
DELETE /projects/:id/repository/tags/:tag_name
```
Parameters:
2020-11-24 15:15:51 +05:30
| Attribute | Type | Required | Description |
| ---------- | -------------- | -------- | --------------------------------------------------------------------------------------------------------------- |
2021-09-30 23:02:18 +05:30
| `id` | integer/string | yes | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user |
2020-11-24 15:15:51 +05:30
| `tag_name` | string | yes | The name of a tag |