スニペット
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated
GitLabスニペットを使用すると、コードやテキストの一部を保存し、他のユーザーと共有できます。スニペットでは、コメントを付けたり、クローンを作成したり、バージョン管理を使用したりできます。複数のファイルを含めることもできます。また、構文ハイライト 、埋め込み 、ダウンロードもサポートしており、スニペットAPIを使用してスニペットを管理できます。
スニペットの作成と管理は、以下の方法で行います:
- GitLabユーザーインターフェース。
- VS Code用GitLab Workflow拡張機能。
glabコマンドラインインターフェース(CLI)。
GitLabでは、次の2種類のスニペットを利用できます:
- パーソナルスニペット: プロジェクトとは独立して作成されます。スニペットの表示レベル(公開または非公開)を設定できます。
- プロジェクトスニペット: 必ず特定のプロジェクトに関連付けられています。プロジェクトスニペットは、一般に公開することも、プロジェクトメンバーのみに公開することもできます。
2019年7月以降、Internalの表示レベル設定は、GitLab.comの新しいプロジェクト、グループ、およびスニペットに対しては無効になっています。Internal表示レベル設定を使用している既存のスニペットは、この設定を保持します。変更の詳細については、関連するイシューを参照してください。
スニペットを作成する
スニペットを作成する方法は複数ありますが、パーソナルスニペットとプロジェクトスニペットのどちらを作成するかによってその方法は異なります:
- 作成するスニペットの種類を選択します:
- パーソナルスニペットを作成するには、次のいずれかを実行します:
- スニペットダッシュボードで、新しいスニペットを選択します。
- プロジェクトから作成する場合: 左側のサイドバーで、新規作成( )を選択します。GitLab全体でから、新しいスニペットを選択します。
- その他のページから作成する場合: 左側のサイドバーで、新規作成( )を選択し、新しいスニペットを選択します。新しいナビゲーションをオンにしている場合、このボタンは右上隅にあります。
glabCLIからglab snippet createコマンドを使用します。詳細な手順については、コマンドのドキュメントを参照してください。- VS Code用GitLab Workflow拡張機能をインストールしている場合は、
Gitlab: Create snippetコマンドを使用します。
- プロジェクトスニペットを作成するには、: プロジェクトのページに移動します。新規作成( )を選択します。このプロジェクト内でから、新しいスニペットを選択します。
- パーソナルスニペットを作成するには、次のいずれかを実行します:
- タイトルに、スニペットのタイトルを入力します。
- オプション。説明に、スニペットの説明を入力します。
- ファイルに、
example.rbやindex.htmlなど、適切なファイル名と拡張子を入力します。適切な拡張子を持つファイル名の場合、ハイライトした構文で表示されます。ファイル名を追加しないと、既知のコピーアンドペーストのバグが発生する可能性があります。ファイル名を指定しない場合、GitLabが名前を作成します。 - オプション。複数のファイルをスニペットに追加します。
- 表示レベルを選択し、スニペットを作成を選択します。
スニペットを作成した後でも、ファイルを追加することができます。スニペットは、デフォルトでバージョン管理されます。
スニペットを見つける
GitLabで自分に表示されるすべてのスニペットを見つけるには、次の操作を行います:
プロジェクトのスニペットを表示する:
- 左側のサイドバーで、検索または移動先を選択して、プロジェクトを見つけます。新しいナビゲーションをオンにしている場合、このフィールドは上部のバーにあります。
- コード > スニペットを選択します。
作成したすべてのスニペットを表示する:
- 左側のサイドバーで、検索または移動先を選択します。新しいナビゲーションをオンにしている場合、このフィールドは上部のバーにあります。
- あなたの作業を選択します。
- スニペットを選択します。
GitLab.comでは、スニペットに直接アクセスすることもできます。
すべてのパブリックスニペットを探す:
- 左側のサイドバーで、検索または移動先を選択します。新しいナビゲーションをオンにしている場合、このフィールドは上部のバーにあります。
- 検索を選択します。
- スニペットを選択します。
GitLab.comでは、すべてのパブリックスニペットに直接アクセスすることもできます。
スニペットのデフォルトの表示レベルを変更する
プロジェクトスニペットはデフォルトで有効になっており、利用できます。デフォルトの表示レベルを変更するには、次の手順を実行します:
- プロジェクトで、設定 > 一般に移動します。
- 可視性、プロジェクトの機能、権限セクションを展開し、スニペットまでスクロールします。
- デフォルトの表示レベルを切り替えることで、スニペットを誰でも閲覧できるようにするか、プロジェクトメンバーのみが閲覧できるようにするかを選択します。
- 変更を保存を選択します。
スニペットのバージョン管理
パーソナルスニペットとプロジェクトスニペットは、どちらもデフォルトでバージョン管理が適用されます。
つまり、各スニペットの作成時に、そのスニペット専用の基盤リポジトリが作成され、デフォルトブランチが用意された状態で初期化されます。スニペットへの変更を保存するたびに、デフォルトブランチに新しいコミットが記録されます。コミットメッセージは自動的に生成されます。スニペットのリポジトリには、1つのブランチしかありません。このブランチを削除したり、他のブランチを作成したりすることはできません。
ファイル名
スニペットは、指定されたファイル名と拡張子に基づいて、ハイライトした構文をサポートします。ファイル名と拡張子を指定せずにスニペットを送信することもできますが、リポジトリにファイルとしてコンテンツを作成するには、有効なファイル名が必要です。
スニペットにファイル名と拡張子が指定されていない場合、GitLabはsnippetfile<x>.txt形式でファイル名を作成します。ここで<x>は1から始まる番号で、ファイル名に付加されます。この番号は、名前のないスニペットを追加するたびに増加します。
以前のバージョンのGitLabから13.0にアップグレードする場合、サポートされていないファイル名の既存のスニペットは、互換性のある形式のファイル名に変更されます。たとえば、スニペットのファイル名がhttp://a-weird-filename.meの場合、スニペットのリポジトリに含めるためにhttp-a-weird-filename-meに変更されます。スニペットはIDに基づいて保存されるため、ファイル名を変更すると、そのスニペットへの直接リンクや埋め込みリンクは機能しなくなります。
複数のファイルを追加または削除する
1つのスニペットで最大10個のファイルをサポートできます。これにより、次のような関連性のあるファイルをまとめて管理できます:
- スクリプトとその出力を含むスニペット。
- HTML、CSS、JavaScriptコードを含むスニペット。
docker-compose.ymlファイルとそれに関連する.envファイルを含むスニペット。gulpfile.jsファイルとpackage.jsonファイル。これらを組み合わせて、プロジェクトをブートストラップし、その依存関係を管理できます。
スニペットに10個を超えるファイルが必要な場合は、代わりにWikiを作成する必要があります。Wikiは、すべてのサブスクリプションレベルのプロジェクトで利用でき、GitLab Premiumではグループで利用できます。
複数のファイルを含むスニペットは、スニペットリストにファイル数が表示されます:
スニペットは、Git(Gitリポジトリでバージョン管理されているため)、スニペットAPI、およびGitLab UIを使用して管理できます。
GitLab UIを使用してスニペットに新しいファイルを追加するには:
- GitLab UIでスニペットに移動します。
- 右上隅にある編集を選択します。
- Add another file(別のファイルを追加)を選択します。
- 表示されたフォームフィールドに、新しいファイルの内容を入力します。
- 変更を保存を選択します。
GitLab UIを使用してスニペットからファイルを削除するには:
- GitLab UIでスニペットに移動します。
- 右上隅にある編集を選択します。
- 削除する各ファイルのファイル名の横にあるファイルを削除を選択します。
- 変更を保存を選択します。
スニペットのクローンを作成する
更新を確実に受け取るには、スニペットをローカルにコピーするのではなく、スニペットのクローンを作成します。クローンを作成することで、スニペットのリポジトリとの接続が維持されます。
スニペットのクローンを作成するには:
- Clone(クローン)を選択し、SSHまたはHTTPSでクローンを作成するためのURLをコピーします。
クローンが作成されたスニペットに対して変更をコミットし、その変更をGitLabにプッシュできます。
スニペットを埋め込む
パブリックスニペットは、任意のWebサイトで共有や埋め込みができます。GitLabスニペットは複数の場所で再利用できます。ソースに対する変更は、埋め込まれたスニペットに反映されます。埋め込まれている場合、ユーザーはスニペットをダウンロードしたり、raw形式で表示したりできます。
スニペットを埋め込むには:
スニペットが公開されていることを確認します:
- プロジェクトスニペットの場合、プロジェクトはパブリックである必要があります。
- スニペットは公開されています。
- プロジェクトで、設定 > 一般に移動します。可視性、プロジェクトの機能、権限セクションを展開し、スニペットまでスクロールします。スニペットの権限をEveryone with access(アクセスできる人すべて)に設定します。
スニペットの埋め込みセクションで、コピーを選択し、任意のWebサイトまたはブログ記事に追加できる1行のスクリプトをコピーします。例は次のとおりです:
<script src="https://gitlab.com/namespace/project/snippets/SNIPPET_ID.js"></script>スクリプトをファイルに追加します。
埋め込まれたスニペットには、次の情報を示すヘッダーが表示されます:
- ファイル名(定義されている場合)。
- スニペットのサイズ。
- GitLabへのリンク。
- 実際のスニペットの内容。
例は次のとおりです:
スニペットをダウンロードする
スニペットのrawコンテンツをダウンロードできます。デフォルトでは、Linuxスタイルの改行コード(LF)でダウンロードされます。元の改行コードを保持する場合は、パラメータline_ending=rawを追加する必要があります(例: https://gitlab.com/snippets/SNIPPET_ID/raw?line_ending=raw)。スニペットがGitLab Webインターフェースを使用して作成された場合、元の改行コードはWindowsスタイル(CRLF)となります。
スニペットにコメントを付ける
スニペットでは、そのコードについてコメントをやり取りでき、ユーザー間のコラボレーションを促進できます。
スニペットをスパムとしてマークする
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab Self-Managed、GitLab Dedicated
GitLab Self-Managedの管理者は、スニペットをスパムとしてマークできます。
前提要件:
- インスタンスの管理者である必要があります。
- インスタンスでAkismetスパム対策が有効になっている必要があります。
このタスクを実行するには:
- 左側のサイドバーで、検索または移動先を選択して、プロジェクトを見つけます。新しいナビゲーションをオンにしている場合、このフィールドは上部のバーにあります。
- コード > スニペットを選択します。
- スパムとして報告するスニペットを選択します。
- スパムとしてレポートを選択します。
GitLabはスパムをAkismetに転送します。
トラブルシューティング
スニペットの制限事項
- 作成できるスニペットの数に制限はありません。
- バイナリファイルはサポートされていません。
- ブランチの作成または削除はサポートされていません。デフォルトブランチのみが使用されます。
- Gitタグは、スニペットリポジトリではサポートされていません。
- スニペットリポジトリは、最大10ファイルに制限されています。10ファイルを超えてプッシュしようとすると、エラーが発生します。
- リビジョンはGitLab UIではユーザーに表示されませんが、更新に関するイシューが存在します。
- 2024-04-17現在、デフォルトでは、スニペットの最大サイズは50 MBです。
- Git LFSはサポートされていません。
スニペットリポジトリのサイズを縮小する
バージョン管理されたスニペットはネームスペースのストレージサイズの一部として扱われるため、スニペットのリポジトリをできるだけコンパクトに保つことを推奨します。
リポジトリをコンパクトにするツールの詳細については、リポジトリサイズの縮小に関するドキュメントを参照してください。
スニペットのテキストボックスにテキストを入力できない
ファイル名フィールドの後のテキストエリアが無効化されており、新しいスニペットを作成できない場合は、次の回避策を使用してください:
- スニペットのタイトルを入力します。
- ファイルフィールドの一番下までスクロールし、Add another file(別のファイルを追加)を選択します。GitLabに、2番目のファイルを追加するための2番目のフィールドセットが表示されます。
- 2番目のファイルのファイル名フィールドにファイル名を入力し、既知のコピーアンドペーストのバグを回避します。
- 2番目のファイルのテキストエリアに任意の文字列を入力します。
- 最初のファイル名までスクロールして、ファイルを削除を選択します。
- ファイルの残りの部分を作成し、完了したらスニペットを作成を選択します。
関連トピック
- GitLab Self-Managedでスニペットを設定する

