- Snippet visibility level
- List snippets
- Single snippet
- Create new snippet
- Update snippet
- Delete snippet
- Snippet content
- Get user agent details
Project snippets
Snippet visibility level
Snippets in GitLab can be either private, internal or public.
You can set it with the visibility
field in the snippet.
Constants for snippet visibility levels are:
visibility | Description |
---|---|
private
| The snippet is visible only the snippet creator |
internal
| The snippet is visible for any logged in user |
public
| The snippet can be accessed without any authentication |
Internal
visibility setting is disabled for new projects, groups,
and snippets on GitLab.com. Existing projects, groups, and snippets using the Internal
visibility setting keep this setting. You can read more about the change in the
relevant issue.List snippets
Get a list of project snippets.
GET /projects/:id/snippets
Parameters:
-
id
(required) - The ID or URL-encoded path of the project owned by the authenticated user
Single snippet
Get a single project snippet.
GET /projects/:id/snippets/:snippet_id
Parameters:
-
id
(required) - The ID or URL-encoded path of the project owned by the authenticated user -
snippet_id
(required) - The ID of a project’s snippet
{
"id": 1,
"title": "test",
"file_name": "add.rb",
"description": "Ruby test snippet",
"author": {
"id": 1,
"username": "john_smith",
"email": "john@example.com",
"name": "John Smith",
"state": "active",
"created_at": "2012-05-23T08:00:58Z"
},
"updated_at": "2012-06-28T10:52:04Z",
"created_at": "2012-06-28T10:52:04Z",
"web_url": "http://example.com/example/example/snippets/1"
}
Create new snippet
Creates a new project snippet. The user must have permission to create new snippets.
POST /projects/:id/snippets
Parameters:
-
id
(required) - The ID or URL-encoded path of the project owned by the authenticated user -
title
(required) - The title of a snippet -
file_name
(required) - The name of a snippet file -
description
(optional) - The description of a snippet -
content
(required) - The content of a snippet -
visibility
(required) - The snippet’s visibility
Example request:
curl --request POST https://gitlab.com/api/v4/projects/:id/snippets \
--header "PRIVATE-TOKEN: <your access token>" \
--header "Content-Type: application/json" \
-d @snippet.json
snippet.json
used in the above example request:
{
"title" : "Example Snippet Title",
"description" : "More verbose snippet description",
"file_name" : "example.txt",
"content" : "source code \n with multiple lines\n",
"visibility" : "private"
}
Update snippet
Updates an existing project snippet. The user must have permission to change an existing snippet.
PUT /projects/:id/snippets/:snippet_id
Parameters:
-
id
(required) - The ID or URL-encoded path of the project owned by the authenticated user -
snippet_id
(required) - The ID of a project’s snippet -
title
(optional) - The title of a snippet -
file_name
(optional) - The name of a snippet file -
description
(optional) - The description of a snippet -
content
(optional) - The content of a snippet -
visibility
(optional) - The snippet’s visibility
Example request:
curl --request PUT https://gitlab.com/api/v4/projects/:id/snippets/:snippet_id \
--header "PRIVATE-TOKEN: <your_access_token>" \
--header "Content-Type: application/json" \
-d @snippet.json
snippet.json
used in the above example request:
{
"title" : "Updated Snippet Title",
"description" : "More verbose snippet description",
"file_name" : "new_filename.txt",
"content" : "updated source code \n with multiple lines\n",
"visibility" : "private"
}
Delete snippet
Deletes an existing project snippet. This returns a 204 No Content
status code if the operation was successfully or 404
if the resource was not found.
DELETE /projects/:id/snippets/:snippet_id
Parameters:
-
id
(required) - The ID or URL-encoded path of the project owned by the authenticated user -
snippet_id
(required) - The ID of a project’s snippet
Example request:
curl --request DELETE https://gitlab.com/api/v4/projects/:id/snippets/:snippet_id \
--header "PRIVATE-TOKEN: <your_access_token>"
Snippet content
Returns the raw project snippet as plain text.
GET /projects/:id/snippets/:snippet_id/raw
Parameters:
-
id
(required) - The ID or URL-encoded path of the project owned by the authenticated user -
snippet_id
(required) - The ID of a project’s snippet
Example request:
curl https://gitlab.com/api/v4/projects/:id/snippets/:snippet_id/raw \
--header "PRIVATE-TOKEN: <your_access_token>"
Get user agent details
Introduced in GitLab 9.4.
Available only for admins.
GET /projects/:id/snippets/:snippet_id/user_agent_detail
Attribute | Type | Required | Description |
---|---|---|---|
id
| Integer | yes | The ID of a project |
snippet_id
| Integer | yes | The ID of a snippet |
Example request:
curl --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/projects/1/snippets/2/user_agent_detail
Example response:
{
"user_agent": "AppleWebKit/537.36",
"ip_address": "127.0.0.1",
"akismet_submitted": false
}
Help and feedback
If there's something you don't like about this feature
To propose functionality that GitLab does not yet offer
To further help GitLab in shaping new features
If you didn't find what you were looking for
If you want help with something very specific to your use case, and can use some community support
POST ON GITLAB FORUM
If you have problems setting up or using this feature (depending on your GitLab subscription)
REQUEST SUPPORT
To view all GitLab tiers and features or to upgrade
If you want to try all features available in GitLab.com
If you want to try all features available in GitLab self-managed
If you spot an error or a need for improvement and would like to fix it yourself in a merge request
EDIT THIS PAGE
If you would like to suggest an improvement to this doc