GitLabでの検索
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated
拡大するコードベースや組織で必要なものを見つけましょう。プロジェクト全体の特定のコード、イシュー、マージリクエスト、その他のコンテンツを検索することで、時間を節約できます。ニーズに応じて、基本的な検索、高度な検索、完全一致コードの検索の3種類の検索から選択できます。
コードの検索の場合、GitLabでは次の順序で各タイプを使用します。
- 完全一致コードの検索: 完全一致モードと正規表現モードを使用できます。
- 高度な検索: 完全一致コードの検索が利用できない場合に使用します。
- 基本的な検索: 完全一致コードの検索と高度な検索が利用できない場合、またはデフォルト以外のブランチに対して検索する場合に使用します。このタイプは、グループ検索またはグローバル検索をサポートしていません。
使用可能なスコープ
スコープは、検索するデータの種類を表します。基本的な検索では、次のスコープを使用できます。
| スコープ | グローバル1 | グループ | プロジェクト |
|---|---|---|---|
| コード | いいえ | いいえ | |
| コメント | いいえ | いいえ | |
| コミット | いいえ | いいえ | |
| エピック | いいえ | いいえ | |
| イシュー | |||
| マージリクエスト | |||
| マイルストーン2 | |||
| プロジェクト | いいえ | ||
| ユーザー | |||
| Wiki | いいえ | いいえ |
脚注:
- 管理者は、グローバル検索のスコープを無効にできます。
- グローバルベーシック検索では、プロジェクトのマイルストーンのみが返され、グループのマイルストーンは返されません。
検索タイプを指定する
検索タイプを指定するには、search_type URLパラメータを次のように設定します。
- 完全一致コードの検索の場合は
search_type=zoekt - 高度な検索の場合は
search_type=advanced - 基本的な検索の場合は
search_type=basic
search_typeは、非推奨のbasic_searchパラメータを置き換えます。詳細については、イシュー477333を参照してください。
検索アクセスを制限する
- 提供形態: GitLab Self-Managed
前提条件:
- インスタンスへの管理者アクセス権が必要です。
デフォルトでは、/searchへのリクエストとグローバル検索は、未認証ユーザーも利用できます。
/searchを認証済みユーザーのみに制限するには、次のいずれかを実行します。
プロジェクトまたはグループの表示レベルを制限します。パブリックプロジェクトが制限されている場合、匿名のグローバル検索はGitLabのサインインページにリダイレクトされます。
管理者エリアでアクセスを制限します。
- 右上隅で、管理者を選択します。
- 設定 > 検索を選択します。
- 高度な検索を展開します。
- 未承認ユーザーに検索を使えるように許可するチェックボックスをオフにします。
- 変更を保存を選択します。
グローバル検索を認証済みユーザーのみに制限するには:
- 右上隅で、管理者を選択します。
- 設定 > 検索を選択します。
- 表示レベルとアクセス制御を展開します。
- グローバル検索を承認されたユーザーだけに制限するチェックボックスをオンにします。
- 変更を保存を選択します。
グローバル検索スコープを無効にする
- 提供形態: GitLab Self-Managed
前提条件:
- インスタンスへの管理者アクセス権が必要です。
インスタンスのグローバル検索のパフォーマンスを向上させるには、1つまたは複数の検索スコープを無効にします。GitLab Self-Managedインスタンスでは、すべてのグローバル検索スコープがデフォルトで有効になっています。
1つまたは複数のグローバル検索スコープを無効にするには:
- 右上隅で、管理者を選択します。
- 設定 > 検索を選択します。
- 表示レベルとアクセス制御を展開します。
- 無効にするスコープのチェックボックスをオフにします。
- 変更を保存を選択します。
デフォルトの検索スコープを設定します
- 提供形態: GitLab Self-Managed
前提条件:
- インスタンスへの管理者アクセス権が必要です。
デフォルトでは、ユーザーが検索スコープを選択しない場合、コンテキストと可用性に基づいてスコープが自動的に選択されます。代わりにデフォルトの検索スコープを設定するには:
- 右上隅で、管理者を選択します。
- 設定 > 検索を選択します。
- 表示レベルとアクセス制御を展開します。
- デフォルトの検索スコープドロップダウンリストから、スコープを選択します。自動選択の場合は、**システムデフォルト(自動)**を選択します。
- 変更を保存を選択します。
ユーザーは、別のスコープを選択することでデフォルトスコープをオーバーライドできます。デフォルトスコープが利用できない場合(例えば、グローバル検索のコードなど)、スコープが自動的に選択されます。
グローバル検索の検証
グローバル検索では、以下を含む検索はすべて不正なものとして無視され、ログに記録されます。
- 2文字未満の語句
- 100文字を超える語句(URL検索語句は200文字を超えることができません)
- ストップワードのみ(例:
the、and、if) - 不明な
scope - 完全に数値ではない
group_idまたはproject_id - Git refnameで許可されていない特殊文字を含む
repository_refまたはproject_ref
グローバル検索では、以下を超える検索のみにエラーフラグが付きます。
- 4,096文字
- 64語
部分一致はイシュー検索ではサポートされていません。たとえば、playのイシューを検索すると、クエリはdisplayを含むイシューを返しません。ただし、クエリは考えられる文字列のバリエーション(例: plays)すべてに一致しています。
オートコンプリート候補
この機能の利用可否は機能フラグによって制御されます。詳細については、履歴を参照してください。
検索ボックスに入力すると、次のオートコンプリート候補が表示されます。
- プロジェクトとグループ
- 承認されたプロジェクトとグループのユーザー
- ヘルプページ
- プロジェクト機能(マイルストーンなど)
- 設定(ユーザー設定など)
- 最近表示したマージリクエスト
- 最近表示したイシューとエピック
- プロジェクト内のイシューのGitLab Flavored Markdown参照
すべてのGitLabで検索する
すべてのGitLabで検索するには:
- 上部のバーで、検索または移動先を選択します。
- 検索クエリを入力します。2文字以上入力する必要があります。
- Enterキーを押して検索するか、リストから選択します。
結果が表示されます。結果を絞り込むには、左サイドバーでフィルターを選択します。
プロジェクトで検索する
プロジェクトで検索するには:
- 上部のバーで、検索または移動先を選択して、プロジェクトを見つけます。
- 検索または移動先を再度選択し、検索する文字列を入力します。
- Enterキーを押して検索するか、リストから選択します。
結果が表示されます。結果を絞り込むには、左サイドバーでフィルターを選択します。
検索結果にアーカイブされたプロジェクトを含める
デフォルトでは、アーカイブされたプロジェクトは検索結果から除外されます。検索結果にアーカイブされたプロジェクトを含めるには、次の操作を行います。
- 検索ページの左サイドバーで、アーカイブを含むチェックボックスを選択します。
- 左サイドバーで、適用を選択します。
コードを検索する
プロジェクトでコードを検索するには:
- 上部のバーで、検索または移動先を選択して、プロジェクトを見つけます。
- 検索または移動先を再度選択し、検索するコードを入力します。
- Enterキーを押して検索するか、リストから選択します。
コード検索には、ファイル内の最初の結果のみが表示されます。すべてのGitLabでコードを検索するには、管理者に高度な検索を有効化するよう依頼してください。
コード検索からGit blameを表示する
検索結果を見つけたら、結果が見つかった行に最後に変更を加えたユーザーを表示できます。
- コード検索結果から、行番号にカーソルを合わせます。
- 左側で、blameの表示を選択します。
コード検索結果を言語別にフィルタリングする
1つ以上の言語でコード検索結果をフィルタリングするには:
- コード検索ページの左サイドバーで、1つまたは複数の言語を選択します。
- 左サイドバーで、適用を選択します。
コミットSHAを検索する
コミットSHAを検索するには:
- 上部のバーで、検索または移動先を選択して、プロジェクトを見つけます。
- 再度検索または移動先を選択し、検索するコミットSHAを入力します。
- Enterキーを押して検索するか、リストから選択します。
単一の結果が返された場合、GitLabはコミット結果にリダイレクトし、検索結果ページに戻るオプションを提供します。
構文
ベーシック検索では、以下のオプションで正確な部分文字列マッチングを使用します:
| 構文 | 説明 | 例 |
|---|---|---|
filename: | ファイル名 | filename:*spec.rb |
path: | リポジトリの場所(完全一致または部分一致) | path:spec/workers/ |
extension: | .なしのファイル拡張子(完全一致のみ) | extension:js |
例
| クエリ | 説明 |
|---|---|
rails -filename:gemfile.lock | gemfile.lockファイルを除くすべてのファイルのrailsを返します。 |
helper -extension:yml -extension:js | .yml拡張子または.js拡張子のファイルを除く、すべてのファイルのhelperを返します。 |
helper path:lib/git | パスにlib/git*の付くすべてのファイル(spec/lib/gitlabなど)のhelperを返します。 |