Skip to main content
The REST API is now versioned. For more information, see "About API versioning."

REST API endpoints for repository tags

Use the REST API to manage tags for a repository.

List tag protection states for a repository

This returns the tag protection states of a repository.

This information is only available to repository administrators.

Fine-grained access tokens for "List tag protection states for a repository"

This endpoint works with the following fine-grained token types:

The fine-grained token must have the following permission set:

  • "Administration" repository permissions (read)

Parameters for "List tag protection states for a repository"

Headers
Name, Type, Description
accept string

Setting to application/vnd.github+json is recommended.

Path parameters
Name, Type, Description
owner string Required

The account owner of the repository. The name is not case sensitive.

repo string Required

The name of the repository without the .git extension. The name is not case sensitive.

HTTP response status codes for "List tag protection states for a repository"

Status codeDescription
200

OK

403

Forbidden

404

Resource not found

Code samples for "List tag protection states for a repository"

Request example

get/repos/{owner}/{repo}/tags/protection
curl -L \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2022-11-28" \ https://api.github.com/repos/OWNER/REPO/tags/protection

Response

Status: 200
[ { "id": 2, "pattern": "v1.*" } ]

Create a tag protection state for a repository

This creates a tag protection state for a repository. This endpoint is only available to repository administrators.

Fine-grained access tokens for "Create a tag protection state for a repository"

This endpoint works with the following fine-grained token types:

The fine-grained token must have the following permission set:

  • "Administration" repository permissions (write)

Parameters for "Create a tag protection state for a repository"

Headers
Name, Type, Description
accept string

Setting to application/vnd.github+json is recommended.

Path parameters
Name, Type, Description
owner string Required

The account owner of the repository. The name is not case sensitive.

repo string Required

The name of the repository without the .git extension. The name is not case sensitive.

Body parameters
Name, Type, Description
pattern string Required

An optional glob pattern to match against when enforcing tag protection.

HTTP response status codes for "Create a tag protection state for a repository"

Status codeDescription
201

Created

403

Forbidden

404

Resource not found

Code samples for "Create a tag protection state for a repository"

Request example

post/repos/{owner}/{repo}/tags/protection
curl -L \ -X POST \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2022-11-28" \ https://api.github.com/repos/OWNER/REPO/tags/protection \ -d '{"pattern":"v1.*"}'

Response

Status: 201
{ "enabled": true }

Delete a tag protection state for a repository

This deletes a tag protection state for a repository. This endpoint is only available to repository administrators.

Fine-grained access tokens for "Delete a tag protection state for a repository"

This endpoint works with the following fine-grained token types:

The fine-grained token must have the following permission set:

  • "Administration" repository permissions (write)

Parameters for "Delete a tag protection state for a repository"

Headers
Name, Type, Description
accept string

Setting to application/vnd.github+json is recommended.

Path parameters
Name, Type, Description
owner string Required

The account owner of the repository. The name is not case sensitive.

repo string Required

The name of the repository without the .git extension. The name is not case sensitive.

tag_protection_id integer Required

The unique identifier of the tag protection.

HTTP response status codes for "Delete a tag protection state for a repository"

Status codeDescription
204

No Content

403

Forbidden

404

Resource not found

Code samples for "Delete a tag protection state for a repository"

Request example

delete/repos/{owner}/{repo}/tags/protection/{tag_protection_id}
curl -L \ -X DELETE \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2022-11-28" \ https://api.github.com/repos/OWNER/REPO/tags/protection/TAG_PROTECTION_ID

Response

Status: 204