プロジェクトの管理
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated
GitLabでのほとんどの作業は、プロジェクト内で行われます。ファイルとコードはプロジェクトに保存され、ほとんどの機能はプロジェクトのスコーピング内にあります。
プロジェクトの概要
プロジェクトを選択すると、Project overview(プロジェクトの概要)ページにプロジェクトの次の内容が表示されます:
- リポジトリ内のファイル
- プロジェクト情報(プロジェクトの説明)
- トピック
- バッジ
- プロジェクト内のお気に入り、フォーク、コミット、ブランチ、タグ、リリース、環境の数
- プロジェクトのストレージサイズ
- オプションのファイルと設定
READMEまたはインデックスファイル- Wikiページ
- ライセンス
- 変更履歴
- コントリビュートのガイドライン
- Kubernetesクラスター
- CI/CD設定
- インテグレーション
- GitLab Pages
- 作成日
パブリックプロジェクト、およびプロジェクトのコードを表示する権限を持つ内部プロジェクトとプライベートプロジェクトのメンバーの場合、プロジェクトの概要ページには以下が表示されます:
READMEまたはインデックスファイル- プロジェクトのリポジトリ内のディレクトリのリスト
プロジェクトのコードを表示する権限を持たないユーザーの場合、概要ページには以下が表示されます:
- Wikiのホームページ。
- プロジェクト内のイシューのリスト。
https://gitlab.example.com/projects/<id>で、名前の代わりにIDを使用してプロジェクトにアクセスできます。たとえば、パーソナルネームスペースalexにID 123456のプロジェクトmy-projectがある場合、https://gitlab.example.com/alex/my-projectまたはhttps://gitlab.example.com/projects/123456でプロジェクトにアクセスできます。
GitLab 17.5以降では、このエンドポイントにhttps://gitlab.example.com/-/p/<id>を使用することもできます。
プロジェクトIDを見つける
GitLab APIを使用してプロジェクトを操作する場合は、プロジェクトIDが必要になる場合があります。
プロジェクトIDを見つけるには、次の手順を実行します:
- 左側のサイドバーで、検索または移動先を選択して、プロジェクトを見つけます。
- プロジェクトの概要ページの右上隅で、アクション( )を選択します。
- Copy project ID(プロジェクトIDをコピー)を選択します。
プロジェクトを表示
プロジェクトリストを使用して、以下を表示します:
- インスタンス上のすべてのプロジェクト
- 作業または所有しているプロジェクト
- アーカイブされたプロジェクトや、削除保留中のプロジェクトなどの非アクティブなプロジェクト
インスタンス上のすべてのプロジェクトを表示
GitLabインスタンス上のプロジェクトを表示するには:
- 左側のサイドバーで、検索または移動先を選択します。
- 検索を選択します。
- オプション。タブを選択して、表示するプロジェクトをフィルタリングします。
認証されていない場合、リストにはパブリックプロジェクトのみが表示されます。
作業するプロジェクトを表示
インタラクトしたプロジェクトを表示するには:
- 左側のサイドバーで、検索または移動先を選択します。
- すべてのプロジェクトを表示を選択します。
- オプション。タブを選択して、表示するプロジェクトを絞り込みます:
- コントリビュート済み: 以下のプロジェクト:
- イシュー、マージリクエスト、またはエピックを作成したプロジェクト
- イシュー、マージリクエスト、またはエピックにコメントしたプロジェクト
- イシュー、マージリクエスト、またはエピックを完了したプロジェクト
- コミットをプッシュしたプロジェクト
- マージリクエストを承認したプロジェクト
- マージリクエストをマージしたプロジェクト
- Star付き: Starを付けたプロジェクト
- 個人: 個人のネームスペースで作成されたプロジェクト
- メンバー: メンバーになっているプロジェクト
- 無効: アーカイブされたプロジェクトと削除保留中のプロジェクト
- コントリビュート済み: 以下のプロジェクト:
Star付きおよびパーソナルプロジェクトを個人のプロファイルから表示することもできます:
- 左側のサイドバーで、自分のアバターを選択し、次にユーザー名を選択します。
- 左側のサイドバーで、アバター、次にユーザー名を選択します。左側のサイドバーで、Star付きのプロジェクトまたはパーソナルプロジェクトを選択します。
非アクティブなプロジェクトを表示
プロジェクトが非アクティブになるのは次の場合です:
- 削除が保留されている。
- アーカイブされている。
すべての非アクティブなプロジェクトを表示するには:
- 次のいずれかを選択します:
- すべてのプロジェクトを表示: プロジェクトを絞り込みます。
- 検索: アクセスできるすべてのプロジェクトをフィルタリングします。
- 無効タブを選択します。
リスト内の各プロジェクトには、以下が表示されます:
- プロジェクトがアーカイブされたか、削除対象としてマークされていることを示すバッジ。プロジェクトが削除対象としてマークされている場合、リストには以下も表示されます:
- プロジェクトが削除対象としてマークされた時刻
- プロジェクトが最終削除される予定の時刻
- 最終的なプロジェクトの削除を停止する復元アクション
自分が所有するプロジェクトのみを表示する
自分がオーナーであるプロジェクトのみを表示するには:
- 左側のサイドバーで、検索または移動先を選択します。
- 次のいずれかを選択します:
- View all your projects(すべてのプロジェクトを表示): プロジェクトをフィルタリングします。
- 検索: アクセスできるすべてのプロジェクトをフィルタリングします。
- プロジェクトリストの上にある結果を検索またはフィルタリングを選択します。
- ロールドロップダウンリストで、オーナーを選択します。
プロジェクトアクティビティーを表示する
プロジェクトのアクティビティーを表示するには:
左側のサイドバーで、検索または移動先を選択して、プロジェクトを見つけます。
管理 > アクティビティーを選択します。
オプション。コントリビュートの種類でアクティビティーをフィルタリングするには、次のタブを選択します:
- すべて: プロジェクトメンバーによるすべてのコントリビュート
- プッシュイベント: プロジェクト内のプッシュイベント
- マージイベント: プロジェクトで承認されたマージリクエスト
- イシューイベント: プロジェクトでオープンおよびクローズされたイシュー
- コメント: プロジェクトメンバーが投稿したコメント
- デザイン: プロジェクトで追加、更新、削除されたデザイン
- チーム: プロジェクトに参加および離脱したメンバー
GitLabでは、パフォーマンス上の理由から、3年以上前のプロジェクトアクティビティーイベントをイベントテーブルから削除します。
言語でプロジェクトをフィルタリングする
使用されているプログラミング言語でプロジェクトをフィルタリングできます。以下を実行します:
- 左側のサイドバーで、検索または移動先を選択します。
- 次のいずれかを選択します:
- View all your projects(すべてのプロジェクトを表示): プロジェクトをフィルタリングします。
- 検索: アクセスできるすべてのプロジェクトをフィルタリングします。
- プロジェクトリストの上にある結果を検索またはフィルタリングを選択します。
- 言語ドロップダウンリストで、プロジェクトのフィルタリングに使用する言語を選択します。
選択した言語を使用するプロジェクトのリストが表示されます。
プロジェクトにStarを付ける
頻繁に使用するプロジェクトにスターを付けて、見つけやすくすることができます。
プロジェクトにStarを付けるには:
- 左側のサイドバーで、検索または移動先を選択して、プロジェクトを見つけます。
- ページの右上隅にあるStar付きを選択します。
プロジェクトを離脱する
プロジェクトを離脱すると、次のようになります:
- プロジェクトメンバーではなくなり、コントリビュートできなくなります。
- 割り当てられていたすべてのイシューとマージリクエストの割り当てが解除されます。
前提要件:
- プロジェクトがグループネームスペースのグループの一部である場合にのみ、この方法でプロジェクトを離脱できます。
- プロジェクトの直接メンバーである必要があります。
プロジェクトを離脱するには:
- 左側のサイドバーで、検索または移動先を選択して、プロジェクトを見つけます。
- プロジェクトの概要ページの右上隅で、アクション( )を選択します。
- プロジェクトを離脱を選択し、もう一度プロジェクトを離脱を選択します。
プロジェクトを編集する
プロジェクトの一般設定を使用して、プロジェクトの詳細を編集します。
前提要件:
- プロジェクトのメンテナーロール以上が必要です。
- 左側のサイドバーで、検索または移動先を選択して、プロジェクトを見つけます。
- 設定 > 一般を選択します。
- プロジェクト名テキストボックスに、プロジェクト名を入力します。プロジェクト名の制限を参照してください。
- オプション。プロジェクトの説明テキストボックスに、プロジェクトの説明を入力します。説明は2,000文字に制限されています。CI/CDカタログに公開されているコンポーネントには、プロジェクトの説明が必要です。
- 変更を保存を選択します。
リポジトリの名前を変更する
プロジェクトのリポジトリ名は、そのURLを定義します。
前提要件:
- 管理者であるか、プロジェクトのメンテナーまたはオーナーのロールを持っている必要があります。
リポジトリパスを変更すると、ユーザーが古いURLにプッシュまたはプルした場合に問題が発生する可能性があります。リダイレクト期間とその副作用の詳細については、リポジトリの名前変更時のリダイレクトを参照してください。
リポジトリの名前を変更するには:
- 左側のサイドバーで、検索または移動先を選択して、プロジェクトを見つけます。
- 設定 > 一般を選択します。
- 高度な設定を展開します。
- パスを変更テキストボックスで、パスを編集します。
- パスを変更を選択します。
プロジェクトアバターを追加する
プロジェクトを視覚的に識別できるように、プロジェクトアバターを追加します。アバターを追加しない場合、GitLabはプロジェクト名の最初の文字をデフォルトのプロジェクトアバターとして表示します。
プロジェクトアバターを追加するには、次のいずれかの方法を使用します:
- リポジトリにロゴを追加する
- プロジェクトの設定でアバターをアップロードします。
リポジトリにロゴを追加する
プロジェクト設定にアバターをアップロードしていない場合、GitLabはlogoという名前のファイルをリポジトリで検索し、デフォルトのプロジェクトアバターとして使用します。
前提要件:
- プロジェクトのメンテナー以上のロールを持っている必要があります。
- ファイルのサイズは200 KB以下である必要があります。理想的な画像サイズは192 x 192ピクセルです。
- ファイルの名前は
logoで、拡張子は.png、.jpg、または.gifである必要があります。たとえば、logo.gifなどです。
プロジェクトアバターとして使用するロゴファイルを追加するには:
- 左側のサイドバーで、検索または移動先を選択して、プロジェクトを見つけます。
- プロジェクトリポジトリのルートで、ロゴファイルをアップロードします。
プロジェクトの設定でアバターをアップロードする
前提要件:
- プロジェクトのメンテナー以上のロールを持っている必要があります。
- ファイルのサイズは200 KB以下である必要があります。理想的な画像サイズは192 x 192ピクセルです。
- 画像は、次のいずれかのファイル形式である必要があります:
.bmp.gif.ico.jpeg.png.tiff
プロジェクトの設定でアバターをアップロードするには:
- 左側のサイドバーで、検索または移動先を選択して、プロジェクトを見つけます。
- 設定 > 一般を選択します。
- プロジェクトアバターセクションで、ファイルを選択を選択します。
- アバターファイルを選択します。
- 変更を保存を選択します。
プロジェクトを削除する
この機能の利用可否は、機能フラグによって制御されます。詳細については、履歴を参照してください。
プロジェクトの削除をスケジュールできます。デフォルトでは、プロジェクトを初めて削除すると、削除保留状態になります。プロジェクトを直ちに削除するには、プロジェクトをもう一度削除します。
GitLab.comでは、プロジェクトが削除された後、そのデータは30日間保持されます。
前提要件:
- プロジェクトのオーナーロールを持っている必要があります。
- オーナーは、プロジェクトの削除を許可されている必要があります。
プロジェクトを削除するには:
- 左側のサイドバーで、検索または移動先を選択して、プロジェクトを見つけます。
- 設定 > 一般を選択します。
- 高度な設定を展開します。
- プロジェクトを削除セクションで、プロジェクトを削除を選択します。
- 確認ダイアログで、プロジェクト名を入力し、はい、プロジェクトを削除しますを選択します。
- オプション。プロジェクトを直ちに削除するには、これらの手順を繰り返します。
Railsコンソールを使用してプロジェクトを削除することもできます。
プロジェクトの削除をスケジュールしたユーザーが、削除の実行前にプロジェクトへのアクセス権を失った場合(たとえば、プロジェクトから離れたり、ロールがダウングレードされたり、プロジェクトからBANされたりした場合)、削除ジョブはプロジェクトを復元します。ただし、削除ジョブの実行前にユーザーがアクセス権を回復した場合、ジョブはプロジェクトを完全に削除します。
プロジェクトを復元する
前提要件:
- プロジェクトのオーナーロールを持っている必要があります。
削除保留中のプロジェクトを復元するには、次の手順を実行します:
- 左側のサイドバーで、検索または移動先を選択して、プロジェクトを見つけます。
- 設定 > 一般を選択します。
- 高度な設定を展開します。
- プロジェクトを復元セクションで、プロジェクトを復元を選択します。
プロジェクトをアーカイブする
プロジェクトをアーカイブして読み取り専用にし、将来の参照のためにデータを保持します。
プロジェクトをアーカイブすると:
- プロジェクトが非アクティブになり、
Archivedバッジが表示されます。 - ほとんどの機能が読み取り専用になります(リポジトリ、イシュー、マージリクエスト、パッケージなど)。
- フォークの関係が削除され、フォークからのオープンマージリクエストが閉じられます
- デプロイされたPagesは、カスタムドメインとともに削除されます
- スケジュールされたCI/CDパイプラインの実行が停止されます
- プルミラーリングが停止します
前提要件:
- 管理者であるか、プロジェクトのオーナーロールを持っている必要があります。
プロジェクトをアーカイブするには:
- 左側のサイドバーで、検索または移動先を選択して、プロジェクトを見つけます。
- 設定 > 一般を選択します。
- 高度な設定を展開します。
- プロジェクトのアーカイブセクションで、アーカイブを選択します。
あなたの作業リストビューから直接プロジェクトをアーカイブするには、次の手順を実行します:
- 左側のサイドバーで、検索または移動先を選択します。
- すべてのプロジェクトを表示を選択します。
- メンバータブで、アーカイブするプロジェクトを見つけて( )を選択します。
- アーカイブを選択します。
この操作は、他のリストされたページでも使用できます。
プロジェクトのアーカイブを解除する
プロジェクトをアーカイブ解除すると、次のようになります:
- 読み取り専用の制限が解除されます
- プロジェクトは非アクティブとしてマークされなくなります
- スケジュールされたCI/CDパイプラインが自動的に再開されます
- プルミラーリングが自動的に再開されます
グループのアーカイブの一部としてアーカイブされたプロジェクトは、個別にアーカイブ解除できません。すべてのプロジェクトとサブグループをアーカイブ解除するには、親グループをアーカイブ解除する必要があります。
デプロイされたPagesは自動的に復元されません。Pagesを復元するには、パイプラインを再実行する必要があります。
前提要件:
- 管理者であるか、プロジェクトのオーナーロールを持っている必要があります。
プロジェクトのアーカイブを解除します:
- アーカイブされたプロジェクトを検索します。
- 左側のサイドバーで、検索または移動先を選択します。
- すべてのプロジェクトを表示を選択します。
- 無効タブで、プロジェクトを選択します。
- 左側のサイドバーで、設定 > 一般を選択します。
- 高度な設定で、全て展開を選択します。
- プロジェクトのアーカイブ解除セクションで、アーカイブ解除を選択します。
あなたの作業リストビューから直接プロジェクトをアーカイブ解除するには、次の手順を実行します:
- 左側のサイドバーで、検索または移動先を選択します。
- すべてのプロジェクトを表示を選択します。
- 無効タブで、アーカイブ解除するプロジェクトを見つけて( )を選択します。
- アーカイブ解除を選択します。
この操作は、他のリストされたページでも使用できます。
プロジェクトを転送する
プロジェクトを転送して、別のグループに移動します。プロジェクトの転送には以下が含まれます:
プロジェクトのコンポーネント:
- イシュー
- マージリクエスト
- パイプライン
- ダッシュボード
プロジェクトメンバー:
- 直接のメンバー
- メンバーシップの招待
プロジェクトの継承されたメンバーシップを持つメンバーは、ターゲットグループのメンバーでもある場合を除き、アクセス権を失います。プロジェクトは、転送先のグループから新しいメンバー権限を継承します。
プロジェクトのパスも変更されるため、必要に応じてプロジェクトコンポーネントへのURLを更新してください。
ターゲットネームスペースに一致するグループラベルがまだ存在しない場合は、新しいプロジェクトレベルのラベルがイシューとマージリクエストに作成されます。
プロジェクトにエピックに割り当てられたイシューが含まれており、そのエピックがターゲットグループで使用できない場合、GitLabはターゲットグループにエピックのコピーを作成します。同じエピックに割り当てられたイシューを含む複数のプロジェクトを転送すると、GitLabはプロジェクトごとにターゲットグループにそのエピックの個別のコピーを作成します。
転送プロセス中のエラーにより、プロジェクトのコンポーネントまたはエンドユーザーの依存のデータが失われる可能性があります。
前提要件:
転送先のグループのメンテナーロール以上が必要です。
転送するプロジェクトのオーナーである必要があります。
グループは新しいプロジェクトの作成を許可する必要があります。
コンテナレジストリが有効になっているプロジェクトの場合:
- GitLab.comの場合: 同じトップレベルのネームスペース内でプロジェクトのみを転送できます。
- GitLab Self-Managedの場合: プロジェクトにコンテナイメージを含めることはできません。
プロジェクトにセキュリティポリシーがあってはなりません。セキュリティポリシーがプロジェクトに割り当てられている場合、転送中に自動的に失効します。
ルートネームスペースが変更された場合は、命名規則に従うNPMパッケージをプロジェクトから削除する必要があります。プロジェクトを転送した後、次のいずれかの操作を実行できます:
- 新しいルートネームスペースパスでパッケージスコープを更新し、プロジェクトに再度公開します。
- ルートネームスペースパスを更新せずにパッケージをプロジェクトに再公開すると、パッケージが命名規則に従わなくなります。ルートネームスペースパスを更新せずにパッケージを再公開すると、インスタンスエンドポイントでは使用できなくなります。
プロジェクトを転送するには:
- 左側のサイドバーで、検索または移動先を選択して、プロジェクトを見つけます。
- 設定 > 一般を選択します。
- 高度な設定を展開します。
- プロジェクトの転送で、プロジェクトの転送先のネームスペースを選択します。
- プロジェクトの転送を選択します。
- プロジェクトの名前を入力し、確認を選択します。
プロジェクトの新しいページにリダイレクトされ、GitLabによってリダイレクトが適用されます。リポジトリのリダイレクトの詳細については、リポジトリパスの変更を参照してください。
管理者は、管理者エリアからプロジェクトを転送することもできます。
GitLab.comプロジェクトを別のサブスクリプション層に転送する
GitLab.com PremiumまたはUltimateプランのライセンスが付与されたネームスペースからプロジェクトをFreeに転送する場合:
- プロジェクトアクセストークンは失効します。
- パイプラインのサブスクリプションとテストケースが削除されます。
[アクション]メニューを使用してプロジェクトを管理する
すべてのプロジェクトのリストを表示し、アクションメニューで管理できます。
前提要件:
- アクションを実行するには、必要なプロジェクト権限が必要です。
アクションメニューを使用してプロジェクトを管理するには:
- 左側のサイドバーで、検索または移動先先 > すべてのプロジェクトを表示を選択します。
- プロジェクトページで、プロジェクトを見つけてアクションメニュー( )を選択します。
- アクションを選択してください。
以下の操作は、プロジェクトの状態によって利用可能です:
| プロジェクトの状態 | 利用可能なアクション |
|---|---|
| アクティブ | 編集、アーカイブ、転送、プロジェクトを離脱、削除 |
| アーカイブ済み | アーカイブ解除、プロジェクトを離脱、削除 |
| 削除保留中 | 復元、プロジェクトを離脱 |
プロジェクトにコンプライアンスフレームワークを追加する
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated
コンプライアンスフレームワークがあるグループのプロジェクトにコンプライアンスフレームワークを追加できます。
LDAPグループを介してプロジェクトへのアクセスを管理する
LDAPグループを使用してプロジェクトへのアクセスを管理することはできませんが、次の回避策を使用できます。
前提要件:
- LDAPをGitLabと統合する必要があります。
- 管理者である必要があります。
- プロジェクトのメンバーシップを追跡するためのグループを作成します。
- そのグループのLDAP同期を設定します。
- LDAPグループを使用してプロジェクトへのアクセスを管理するには、LDAP同期されたグループをメンバーとして追加します。
プロジェクトエイリアス
- プラン: Premium、Ultimate
- 提供形態: GitLab Self-Managed、GitLab Dedicated
通常、GitLabリポジトリには、ネームスペースとプロジェクト名を使用してアクセスします。ただし、頻繁にアクセスされるリポジトリをGitLabに移行する場合は、プロジェクトエイリアスを使用して、元の名前でそれらのリポジトリにアクセスできます。プロジェクトエイリアスを介してリポジトリにアクセスすると、そのようなリポジトリの移行に関連するリスクが軽減されます。
この機能は、SSH経由のGitでのみ使用できます。また、プロジェクトエイリアスを作成できるのはGitLab管理者のみであり、APIを介してのみ作成できます。詳細については、プロジェクトエイリアスAPIドキュメントを参照してください。
管理者がプロジェクトのエイリアスを作成すると、そのエイリアスを使用してリポジトリのクローンを作成できます。たとえば、管理者がプロジェクトhttps://gitlab.com/gitlab-org/gitlabのエイリアスgitlabを作成した場合、git clone git@gitlab.com:gitlab-org/gitlab.gitの代わりにgit clone git@gitlab.com:gitlab.gitを使用してプロジェクトのクローンを作成できます。