グループのカスタムプロジェクトテンプレート
- プラン: Premium、Ultimate
- 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated
プロジェクトを作成するときは、テンプレートのリストから選択できます。これらのテンプレート(GitLab PagesやRubyなど)は、テンプレートに含まれるファイルのコピーを新しいプロジェクトに設定します。この情報は、GitLabプロジェクトのインポート/エクスポートで使用される情報と同じであり、新しいプロジェクトをより迅速に開始するのに役立ちます。
グループ内のすべてのプロジェクトが同じリストを持つように、利用可能なテンプレートのリストをカスタマイズできます。これを行うには、テンプレートとして使用するプロジェクトをサブグループに入力します。
インスタンスのカスタムテンプレートを設定することもできます。
グループのプロジェクトテンプレートをセットアップする
前提要件:
- グループのオーナーロールを持っている必要があります。
グループにカスタムプロジェクトテンプレートを設定するには、プロジェクトテンプレートを含むサブグループをグループ設定に追加します:
- グループで、サブグループを作成します。
- テンプレートとして、新しいサブグループにプロジェクトを追加します。
- グループの左側のメニューで、設定 > 一般を選択します。
- カスタムプロジェクトテンプレートを展開し、サブグループを選択します。
次にグループメンバーがプロジェクトを作成するときに、サブグループ内の任意のプロジェクトを選択できます。
ネストされたサブグループ内のプロジェクトは、テンプレートリストには含まれません。
テンプレートとして使用できるプロジェクト
- パブリックプロジェクトと内部プロジェクトは、GitLab Pagesとセキュリティとコンプライアンスを除くすべてのプロジェクト機能がアクセスできる人すべてに設定されている場合、認証済みユーザー全員が新しいプロジェクトのテンプレートとして選択できます。
- プライベートプロジェクトは、プロジェクトのメンバーであるユーザーのみが選択できます。
既知のイシューがあります: 継承されたメンバーは、project_templates_without_min_access機能フラグが有効になっていない限り、プロジェクトテンプレートを選択できません。この機能フラグはGitLab.comでは無効になっているため、テンプレートプロジェクトへの直接のメンバーシップをユーザーに許可する必要があります。
構成例
myorganizationのプロジェクトテンプレートのサンプルグループとプロジェクト構成を次に示します:
# GitLab instance and group
gitlab.com/myorganization/
# Subgroups
internal
tools
# Subgroup for handling project templates
websites
templates
# Project templates
client-site-django
client-site-gatsby
client-site-html
# Other projects
client-site-a
client-site-b
client-site-c
...テンプレートからコピーされるもの
テンプレートからプロジェクトを作成すると、エクスポート可能なすべてのプロジェクトアイテムがテンプレートから新しいプロジェクトにコピーされます。これらのアイテムは次のとおりです:
- リポジトリのブランチ、コミット、およびタグ。
- プロジェクトのアップロード。
- プロジェクト設定。
- イシューとマージリクエスト、それらのコメント、およびその他のメタデータ。
- ラベル、マイルストーン、スニペット、およびリリース。
- CI/CDパイプライン設定。
コピーされるものの完全なリストについては、エクスポートされるプロジェクト項目を参照してください。
権限と機密データ
コピーの動作は、権限によって異なる場合があります:
- インスタンスのカスタムテンプレートを含むプロジェクトのオーナーロールを持っているか、GitLab管理者である場合、プロジェクトメンバーを含むすべてのプロジェクト設定が新しいプロジェクトにコピーされます。
- プロジェクトのオーナーロールがない場合、またはGitLab管理者でない場合、プロジェクトのデプロイキーとプロジェクトのWebhookには機密データが含まれているため、コピーされません。
テンプレート内のユーザー割り当て
別のユーザーが作成したテンプレートを使用すると、テンプレート内のユーザーに割り当てられた項目はすべて、自分に再割り当てされます。保護ブランチやタグなどのセキュリティ機能を設定する場合は、この再アサインを理解することが重要です。たとえば、テンプレートに保護ブランチが含まれている場合は次の通りです:
- テンプレートでは、ブランチはテンプレートのオーナーがデフォルトブランチにマージすることを許可しています。
- テンプレートから作成されたプロジェクトでは、ブランチはあなたがデフォルトブランチにマージすることを許可しています。
トラブルシューティング
プロジェクトの作成時に、管理者がグループのカスタムプロジェクトテンプレートを表示できない
グループのカスタムプロジェクトテンプレートは、グループメンバーのみが利用できます。使用している管理者アカウントがグループのメンバーでない場合、テンプレートにアクセスできません。