スニペット

GitLabスニペットでは、コードやテキストの断片を保存し、他のユーザーと共有することができます。スニペットではコメントや クローンバージョン管理ができます。スニペットには複数のファイルをコンテナすることができます。また、シンタックスハイライト埋め込みダウンロードをサポートし、スニペットAPIでスニペットをメンテナーすることができます。

スニペットの作成と管理は、GitLabユーザーインターフェイス、またはGitLab Workflow VS Codeエクステンションを使って行うことができます。

Example of snippet

GitLabは2種類のスニペットを提供します:

  • パーソナルスニペット:どのプロジェクトからも独立して作成されます。スニペットの公開・非公開を設定できます。
  • プロジェクトスニペット:常に特定のプロジェクトに関連しています。プロジェクトスニペットは公開することも、プロジェクトメンバーだけに公開することもできます。
note
2019年7月より、Internal GitLab.comの新しいプロジェクト、グループ、スニペットに対して可視性設定が無効に Internalなります。可視化設定をInternal 使用している既存のスニペットでは Internal、この設定が維持されます。この変更についての詳細は関連イシューをご覧ください。

スニペット作成

スニペットの作成方法は、個人用スニペットかプロジェクト用スニペットかによって異なります:

  1. 作成したいスニペットの種類を選択します:
    • パーソナルスニペットを作成するには、以下のいずれかを行ってください:
    • プロジェクトスニペットを作成するには:プロジェクトのページに移動します。Create new({plus})を選択します。このプロジェクトの下で、新規スニペットを選択します。
  2. タイトルと 説明を追加します。
  3. ファイル名には、example.rbindex.html などの適切な拡張子を付けてください。適切な拡張子を持つファイル名には、シンタックスハイライトが表示されます。ファイル名を付けないと、コピーペーストのバグが発生することがあります。ファイル名を指定しない場合は、GitLabが名前を作成します。
  4. オプション。スニペットに複数のファイルを追加します。
  5. 表示レベルを選択し、スニペットの作成を選択します。

スニペットを作成した後も、ファイルを追加することができます。GitLabバージョン13.0以降では、スニペットはデフォルトでバージョン管理されます。

スニペットの発見

GitLabで表示されているすべてのスニペットを発見するには、以下の方法があります:

  • プロジェクトのスニペットを見る
    1. 左のサイドバーで「検索」または「移動」を選択してあなたのプロジェクトを検索します。
    2. コード > スニペット]を選択します。
  • 作成したすべてのスニペットを表示します:
    1. 左のサイドバーで、Search を選択するか、次のページに進んでください。
    2. 作品を選択します。
    3. スニペットを選択します。

    GitLab.comでは、スニペットに直接アクセスすることもできます。

  • 全ての公開スニペットを見る
    1. 左のサイドバーで、Search を選択するか、次のページに進んでください。
    2. Exploreを選択します。
    3. スニペットを選択します。

    GitLab.comでは、すべての公開スニペットに直接アクセスすることもできます。

スニペットのデフォルト表示の変更

プロジェクトのスニペットはデフォルトで有効になっています。デフォルトの可視性を変更するには

  1. プロジェクトで、Settingsに移動します。
  2. Visibility, project features, permissionsセクションを展開し、スニペットまでスクロールします。
  3. デフォルトの可視性を切り替え、スニペットを全員が閲覧できるか、プロジェクトメンバーだけが閲覧できるかを選択します。
  4. 変更を保存を選択します。

バージョン管理されたスニペット

GitLab 13.0から導入されました

GitLab バージョン13.0以降では、スニペット(個人スニペットとプロジェクトスニペットの両方)はデフォルトでバージョン管理が有効になっています。

つまり、すべてのスニペットは、スニペットが作成された時点で、デフォルトブランチで初期化された独自のリポジトリを取得します。スニペットへの変更が保存されるたびに、デフォルトブランチへの新しいコミットが記録されます。コミットメッセージは自動的に生成されます。スニペットのリポジトリにはブランチが1つしかありません。このブランチを削除したり、他のブランチを作成したりすることはできません。

既存のスニペットは13.0で自動的にマイグレーションされました。現在の内容は、スニペットリポジトリへの最初のコミットとして保存されました。

ファイル名

スニペットでは、ファイル名と拡張子に基づいたシンタックスハイライトがサポートされています。ファイル名と拡張子がなくてもスニペットを投稿できますが、リポジトリにファイルとしてコンテンツを作成するには、有効な名前が必要です。

スニペットにファイル名と拡張子が提供されていない場合、GitLab はsnippetfile<x>.txt というフォーマットでファイル名を追加します。<x> はファイルに追加された番号を表し、1から始まります。無名のスニペットを追加すると、この番号は増えていきます。

以前のバージョンのGitLabから13.0にアップグレードする場合、サポートされているファイル名のない既存のスニペットは互換性のあるフォーマットにリネームされます。例えば、スニペットのファイル名がhttp://a-weird-filename.me の場合、http-a-weird-filename-me に変更され、スニペットのリポジトリに含まれるようになります。スニペットはIDで保存されるため、ファイル名を変更すると、スニペットへの直接リンクや埋め込みリンクが壊れてしまいます。

複数ファイルの追加と削除

GitLab 13.5 で導入されました

一つのスニペットで最大10個のファイルをサポートすることができます:

  • スクリプトとその出力を含むスニペット。
  • HTML、CSS、JavaScriptコードを含むスニペット。
  • docker-compose.yml ファイルと関連する.env ファイルを持つスニペット。
  • gulpfile.js ファイルとpackage.json ファイルは、プロジェクトのブートストラップと依存関係の管理に使われます。

スニペットに10個以上のファイルが必要な場合は、代わりにWikiを作成してください。Wikiはすべてのサブスクリプションレベルのプロジェクトで利用でき、GitLab Premiumではグループで利用できます。

複数のファイルがあるスニペットでは、スニペットリストにファイル数が表示されます:

Example of snippet

スニペットはGit(Gitリポジトリによってバージョン管理されるため)、スニペットAPI、GitLab UIで管理できます。

GitLab UIからスニペットに新しいファイルを追加するには:

  1. GitLab UIからスニペットに移動します。
  2. 右上のEditを選択します。
  3. 別のファイルを追加を選択します。
  4. 指定されたフォームフィールドにコンテンツを追加します。
  5. 変更を保存を選択します。

GitLab UI からスニペットからファイルを削除するには:

  1. GitLab UIからスニペットに移動します。
  2. 右上のEditを選択します。
  3. 削除したい各ファイルのファイル名の横にある「ファイルを削除」を選択します。
  4. 変更を保存を選択します。

スニペットのクローン

更新を確実に受け取るには、ローカルにコピーするのではなく、スニペットをクローンしてください。クローンを作成すると、スニペットとリポジトリとの接続がメンテナーになります。スニペットでクローンを選択すると、SSHまたはHTTPSでクローンするURLが表示されます:

Clone snippet

クローンしたスニペットに対して変更をコミットし、変更をGitLabにプッシュすることができます。

スニペットの埋め込み

公開スニペットは共有することができ、どのウェブサイトにも埋め込むことができます。GitLabスニペットは複数の場所で再利用することができ、ソースに変更があった場合は埋め込んだスニペットにも反映されます。埋め込むと、ユーザーはダウンロードしたり、スニペットを生のフォーマットで見ることができます。

スニペットを埋め込むには

  1. スニペットが公開されていることを確認してください:
    • プロジェクトのスニペットであれば、プロジェクトが公開されている必要があります。
    • スニペットは公開されます。
    • プロジェクト > 設定 > 権限で、スニペットの権限が「Everyone with access」に設定されています。
  2. スニペットの[埋め込み]セクションで[コピー]を選択すると、任意のウェブサイトやブログ記事に追加できる1行スクリプトがコピーされます。例えば

    <script src="https://gitlab.com/namespace/project/snippets/SNIPPET_ID.js"></script>
    
  3. スクリプトをファイルに追加します。

埋め込まれたスニペットには、ヘッダーが表示されます:

  • ファイル名(定義されている場合
  • スニペットサイズ。
  • GitLabへのリンク。
  • 実際のスニペットの内容。

使用例:

スニペットのダウンロード

スニペットの生のコンテンツをダウンロードすることができます。デフォルトでは、Linuxスタイルの改行コード (LF) でダウンロードされます。オリジナルの行末を保持したい場合は、line_ending=raw (例:https://gitlab.com/snippets/SNIPPET_ID/raw?line_ending=raw) というパラメータを追加する必要があります。スニペットがGitLabウェブインターフェースを使用して作成された場合、元の行末はWindowsのようになります(CRLF)。

スニペットへのコメント

スニペットでは、コードの一部について会話をすることができ、ユーザーのコラボレーションを促進することができます。

スニペットをスパムとしてマーク

自分で管理する GitLab インスタンスの管理者は、スニペットをスパムとしてマークすることができます。

前提条件:

  • インスタンスの管理者である必要があります。
  • Akismetスパム対策がインスタンスで有効になっている必要があります。

このタスクを実行するには

  1. 左のサイドバーで「検索」または「移動」を選択してあなたのプロジェクトを検索します。
  2. 左サイドバーで、[コード] > [スニペット]を選択します。
  3. スパムとしてレポーターしたいスニペットを選択します。
  4. スパムとして送信を選択します。

GitLabはAkismetにスパムを転送します。

トラブルシューティング

スニペットの制限

  • バイナリファイルはサポートされていません。
  • ブランチの作成や削除はサポートされていません。デフォルトのブランチのみが使用されます。
  • スニペット・リポジトリでは Git タグはサポートされていません。
  • スニペットのリポジトリは10ファイルまでに制限されています。10以上のファイルをプッシュしようとするとエラーになります。
  • GitLab UI 上ではリビジョンがユーザーに表示されませんが、アップデートにはイシューが存在します。
  • スニペットのデフォルトの最大サイズは 50 MB です。
  • Git LFSはサポートされていません。

スニペット・リポジトリサイズの削減

バージョン管理されたスニペットはネームスペースのストレージサイズの一部とみなされるため、スニペットのリポジトリはできるだけコンパクトに保つことをお勧めします。

リポジトリをコンパクトにするツールの詳細については、リポジトリサイズの削減に関するドキュメントを参照してください。

スニペットテキストボックスにテキストを入力できません

ファイル名フィールドの後のテキストエリアが無効で、新しいスニペットを作成できない場合は、この回避策を使用してください:

  1. スニペットのタイトルを入力してください。
  2. Filesフィールドの一番下までスクロールし、Add another fileを選択します。GitLabは2つ目のファイルを追加するためのフィールドを表示します。
  3. 2つ目のファイルのファイル名フィールドには、既知のコピーペーストのバグを避けるためにファイル名を入力します。
  4. 2番目のファイルのテキストエリアに任意の文字列を入力します。
  5. 最初のファイル名までスクロールして戻り、[ファイルを削除]を選択します。
  6. 残りのファイルを作成し、完了したらスニペットの作成を選択します。