プロジェクトのスニペット
スニペットの可視レベル
GitLabのスニペットには、非公開、内部、公開のいずれかがあります。スニペット内のvisibility
フィールドで設定できます。
スニペットの表示レベルの定数は以下の通りです:
- 非公開:スニペットはプロジェクトメンバーにのみ表示されます。
- 内部:スニペットは、外部ユーザーを除く、認証されたすべてのユーザーに表示されます。
- 公開:スニペットには認証なしでアクセスできます。
Internal
GitLab.comの新規プロジェクト、グループ、スニペットに対して可視性設定が無効に Internal
なります。可視性設定をInternal
使用している既存のプロジェクト、グループ、スニペットでは Internal
、この設定が維持されます。この変更についての詳細は関連イシューをご覧ください。スニペット一覧
プロジェクトのスニペット一覧を取得します。
GET /projects/:id/snippets
パラメータを指定します:
属性 | 種類 | 必須 | 説明 |
---|---|---|---|
id | 整数または文字列。 | yes | 認証ユーザーが所有するプロジェクトのIDまたはURLエンコードされたパス。 |
単一のスニペット
単一のプロジェクトスニペットを取得します。
GET /projects/:id/snippets/:snippet_id
パラメータを指定します:
属性 | 種類 | 必須 | 説明 |
---|---|---|---|
id | 整数または文字列。 | yes | 認証ユーザーが所有するプロジェクトのIDまたはURLエンコードされたパス。 |
snippet_id | 整数。 | yes | プロジェクトのスニペットの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 | 整数または文字列。 | yes | 認証ユーザーが所有するプロジェクトのIDまたはURLエンコードされたパス。 |
files:content | 文字列です。 | yes | スニペットファイルの内容。 |
files:file_path | 文字列です。 | yes | スニペットファイルのファイルパス。 |
title | 文字列です。 | yes | スニペットのタイトル。 |
content | 文字列です。 | いいえ | 非推奨:代わりにfiles 。スニペットの内容。 |
description | 文字列です。 | いいえ | スニペットの説明。 |
file_name | 文字列です。 | いいえ | 非推奨:代わりにfiles 。スニペットファイルの名前。 |
files | ハッシュの配列 | いいえ | スニペットファイルの配列。 |
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",
"visibility" : "private",
"files": [
{
"file_path": "example.txt",
"content" : "source code \n with multiple lines\n"
}
]
}
スニペットの更新
既存のプロジェクトスニペットを更新します。ユーザーには既存のスニペットを変更する権限が必要です。
複数のファイルを持つスニペットへの更新は、files
属性を使用する必要があります。
PUT /projects/:id/snippets/:snippet_id
パラメータを指定します:
属性 | 種類 | 必須 | 説明 |
---|---|---|---|
id | 整数または文字列。 | yes | 認証ユーザーが所有するプロジェクトのIDまたはURLエンコードされたパス。 |
files:action | 文字列です。 | yes | ファイルに対して実行するアクションの種類。以下のいずれか:create update ,delete ,move . |
snippet_id | 整数。 | yes | プロジェクトのスニペットのID。 |
content | 文字列です。 | いいえ | 非推奨:代わりにfiles 。スニペットの内容。 |
description | 文字列です。 | いいえ | スニペットの説明。 |
files | ハッシュの配列 | いいえ | スニペットファイルの配列。 |
files:content | 文字列です。 | いいえ | スニペットファイルの内容。 |
files:file_path | 文字列です。 | いいえ | スニペットファイルのファイルパス。 |
file_name | 文字列です。 | いいえ | 非推奨:代わりにfiles 。スニペットファイルの名前。 |
files:previous_path | 文字列です。 | いいえ | スニペットファイルの前のパス。 |
title | 文字列です。 | いいえ | スニペットのタイトル。 |
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",
"visibility" : "private",
"files": [
{
"action": "update",
"file_path": "example.txt",
"content" : "updated source code \n with multiple lines\n"
}
]
}
スニペットの削除
既存のプロジェクト・スニペットを削除します。オペレーションに成功した場合は204 No Content
、リソースが見つからなかった場合は404
のステータスコードを返します。
DELETE /projects/:id/snippets/:snippet_id
パラメータを指定します:
属性 | 種類 | 必須 | 説明 |
---|---|---|---|
id | 整数または文字列。 | yes | 認証ユーザーが所有するプロジェクトのIDまたはURLエンコードされたパス。 |
snippet_id | 整数。 | yes | プロジェクトのスニペットの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 | 整数または文字列。 | yes | 認証ユーザーが所有するプロジェクトのIDまたはURLエンコードされたパス。 |
snippet_id | 整数。 | yes | プロジェクトのスニペットの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 | 整数または文字列。 | yes | 認証ユーザーが所有するプロジェクトのIDまたはURLエンコードされたパス。 |
file_path | 文字列です。 | yes | ファイルへの URL エンコードされたパス、例えばsnippet%2Erb 。 |
ref | 文字列です。 | yes | ブランチ、タグ、コミットの名前。たとえばmain 。 |
snippet_id | 整数。 | yes | プロジェクトのスニペットのID。 |
リクエストの例
curl "https://gitlab.com/api/v4/projects/1/snippets/2/files/master/snippet%2Erb/raw" \
--header "PRIVATE-TOKEN: <your_access_token>"
ユーザーエージェントの詳細の取得
管理者権限を持つユーザーのみ利用可能です。
GET /projects/:id/snippets/:snippet_id/user_agent_detail
属性 | 種類 | 必須 | 説明 |
---|---|---|---|
id | 整数または文字列。 | yes | 認証ユーザーが所有するプロジェクトのIDまたはURLエンコードされたパス。 |
snippet_id | 整数 | yes | スニペットの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
}