プロジェクトのスニペット

スニペット可視レベル

GitLabのスニペットには、非公開、内部、公開のいずれかを設定できます。スニペット内のvisibility フィールドで設定できます。

スニペット表示レベルの定数は以下の通りです:

視認性 説明
private スニペットはスニペット作成者にのみ表示されます。
internal スニペットは、ログインしているユーザーであれば誰でも見ることができます。
public スニペットには認証なしでアクセスできます。
注意:2019年7月より、Internal GitLab.comの新規プロジェクト、 InternalグループInternal 、スニペットに対して可視性設定が無効になりました。 既存のプロジェクト、グループ、スニペットで Internal可視性設定をInternal 使用している Internal場合は、この設定が維持されます。 変更の詳細については、関連するイシューをご覧ください。

スニペット一覧

プロジェクトスニペットのリストを取得します。

GET /projects/:id/snippets

パラメーター

単一のスニペット

単一のプロジェクトスニペットを取得します。

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
}