プロジェクトのスニペット
スニペット可視レベル
GitLabのスニペットには、非公開、内部、公開のいずれかを設定できます。スニペット内のvisibility
フィールドで設定できます。
スニペット表示レベルの定数は以下の通りです:
視認性 | 説明 |
---|---|
private
| スニペットはスニペット作成者にのみ表示されます。 |
internal
| スニペットは、ログインしているユーザーであれば誰でも見ることができます。 |
public
| スニペットには認証なしでアクセスできます。 |
Internal
GitLab.comの新規プロジェクト、 Internal
グループInternal
、スニペットに対して可視性設定が無効になりました。 既存のプロジェクト、グループ、スニペットで Internal
可視性設定をInternal
使用している Internal
場合は、この設定が維持されます。 変更の詳細については、関連するイシューをご覧ください。スニペット一覧
プロジェクトスニペットのリストを取得します。
GET /projects/:id/snippets
パラメーター
-
id
(必須) - 認証されたユーザーが所有するプロジェクトのIDまたはURLエンコードされたパス。
単一のスニペット
単一のプロジェクトスニペットを取得します。
GET /projects/:id/snippets/:snippet_id
パラメーター
-
id
(必須) - 認証されたユーザーが所有するプロジェクトのIDまたはURLエンコードされたパス。 -
snippet_id
(必須) - プロジェクトのスニペットのID。
{
"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",
"project_id": 1,
"web_url": "http://example.com/example/example/snippets/1",
"raw_url": "http://example.com/example/example/snippets/1/raw"
}
新規スニペット作成
新しいプロジェクトスニペットを作成します。 ユーザーには新しいスニペットを作成する権限が必要です。
POST /projects/:id/snippets
パラメーター
-
id
(必須) - 認証されたユーザーが所有するプロジェクトのIDまたはURLエンコードされたパス。 -
title
(必須) - スニペットのタイトル。 -
file_name
(必須) - スニペットファイルの名前。 -
description
(オプション) - スニペットの説明。 -
content
(必須) - スニペットの内容。 -
visibility
(必須) - スニペットの可視性。
リクエスト例
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
上記のリクエスト例で使われています:
{
"title" : "Example Snippet Title",
"description" : "More verbose snippet description",
"file_name" : "example.txt",
"content" : "source code \n with multiple lines\n",
"visibility" : "private"
}
スニペット更新
既存のプロジェクトのスニペットを更新します。 ユーザーは既存のスニペットを変更する権限を持っている必要があります。
PUT /projects/:id/snippets/:snippet_id
パラメーター
-
id
(必須) - 認証されたユーザーが所有するプロジェクトのIDまたはURLエンコードされたパス。 -
snippet_id
(必須) - プロジェクトのスニペットのID。 -
title
(オプション) - スニペットのタイトル。 -
file_name
(オプション) - スニペットファイルの名前。 -
description
(オプション) - スニペットの説明。 -
content
(オプション) - スニペットの内容。 -
visibility
(オプション) - スニペットの可視性。
リクエスト例
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
上記のリクエスト例で使われています:
{
"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"
}
スニペット削除
既存のプロジェクトスニペットを削除します。 オペレーションに成功した場合は204 No Content
ステータスコードを、 リソースが見つからなかった場合は404
ステータスコードを返します。
DELETE /projects/:id/snippets/:snippet_id
パラメーター
-
id
(必須) - 認証されたユーザーが所有するプロジェクトのIDまたはURLエンコードされたパス。 -
snippet_id
(必須) - プロジェクトのスニペットのID。
リクエスト例
curl --request DELETE "https://gitlab.com/api/v4/projects/:id/snippets/:snippet_id" \
--header "PRIVATE-TOKEN: <your_access_token>"
スニペットコンテンツ
生のプロジェクトスニペットをプレーンテキストで返します。
GET /projects/:id/snippets/:snippet_id/raw
パラメーター
-
id
(必須) - 認証されたユーザーが所有するプロジェクトのIDまたはURLエンコードされたパス。 -
snippet_id
(必須) - プロジェクトのスニペットのID。
リクエスト例
curl "https://gitlab.com/api/v4/projects/:id/snippets/:snippet_id/raw" \
--header "PRIVATE-TOKEN: <your_access_token>"
スニペットリポジトリファイルの内容
生のファイルの内容をプレーンテキストで返します。
GET /projects/:id/snippets/:snippet_id/files/:ref/:file_path/raw
パラメーター
-
id
(必須) - 認証されたユーザーが所有するプロジェクトのIDまたはURLエンコードされたパス。 -
snippet_id
(必須) - プロジェクトのスニペットのID。 -
ref
(必須) - ブランチ、タグ、コミットの名前。 -
file_path
(必須) - スニペット%2Erbなど、ファイルへのURLエンコードされたパス。
リクエスト例
curl "https://gitlab.com/api/v4/projects/1/snippets/2/files/master/snippet%2Erb/raw" \
--header "PRIVATE-TOKEN: <your_access_token>"
ユーザーエージェントの詳細取得
GitLab 9.4から導入されました。
管理者のみ利用可能です。
GET /projects/:id/snippets/:snippet_id/user_agent_detail
属性 | タイプ | 必須 | 説明 |
---|---|---|---|
id
| 整数 | はい | プロジェクトのID |
snippet_id
| 整数 | はい | スニペットのID |
リクエスト例
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/1/snippets/2/user_agent_detail"
回答例
{
"user_agent": "AppleWebKit/537.36",
"ip_address": "127.0.0.1",
"akismet_submitted": false
}