GitLabでの検索
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated
拡大するコードベースや組織で必要なものを見つけましょう。プロジェクト全体の特定のコード、イシュー、マージリクエスト、その他のコンテンツを検索することで、時間を節約できます。ニーズに応じて、basic search(基本的な検索)、advanced search(高度な検索) 、exact code search(完全一致コードの検索)の3種類の検索から選択できます。
コードの検索の場合、GitLabでは次の順序で各タイプを使用します:
- 完全一致コードの検索: 完全一致モードと正規表現モードを使用できます。
- 高度な検索: 完全一致コードの検索が利用できない場合に使用します。
- Basic search(基本的な検索): 完全一致コードの検索と高度な検索が利用できない場合、またはデフォルト以外のブランチに対して検索する場合に使用します。このタイプは、グループ検索またはグローバル検索をサポートしていません。
使用可能なスコープ
スコープは、検索するデータの種類を表します。基本的な検索では、次のスコープを使用できます:
| スコープ | グローバル1 | グループ | プロジェクト |
|---|---|---|---|
| コード | 非対応 | 非対応 | 対応 |
| コメント | 非対応 | 非対応 | 対応 |
| コミット | 非対応 | 非対応 | 対応 |
| エピック | 非対応 | 対応 | 非対応 |
| イシュー | 対応 | 対応 | 対応 |
| マージリクエスト | 対応 | 対応 | 対応 |
| マイルストーン | 対応 | 対応 | 対応 |
| プロジェクト | 対応 | 対応 | 非対応 |
| ユーザー | 対応 | 対応 | 対応 |
| Wiki | 非対応 | 非対応 | 対応 |
Footnotes(補足説明):
- 管理者は、グローバル検索のスコープを無効にできます。
検索タイプを指定する
検索タイプを指定するには、search_type URLパラメータを次のように設定します:
- 完全一致コードの検索の場合は
search_type=zoekt - 高度な検索の場合は
search_type=advanced - 基本的な検索の場合は
search_type=basic
search_typeは、非推奨のbasic_searchパラメータを置き換えます。詳細については、イシュー477333を参照してください。
検索アクセスを制限する
- 提供形態: GitLab Self-Managed
前提要件:
- インスタンスへの管理者アクセス権が必要です。
デフォルトでは、/searchへのリクエストとグローバル検索は、未認証ユーザーも利用できます。
/searchを認証済みユーザーのみに制限するには、次のいずれかを実行します:
プロジェクトまたはグループの表示レベルを制限します。
管理者エリアでアクセスを制限します:
- 左側のサイドバーの下部で、管理者を選択します。
- 設定 > 検索を選択します。
- 高度な検索を展開します。
- 未承認ユーザーが検索の使用を許可するチェックボックスをオフにします。
- 変更を保存を選択します。
グローバル検索を認証済みユーザーのみに制限するには:
- 左側のサイドバーの下部で、管理者を選択します。
- 設定 > 検索を選択します。
- 表示レベルとアクセス制御を展開します。
- グローバル検索を承認されたユーザーだけに制限するチェックボックスをオンにします。
- 変更を保存を選択します。
グローバル検索スコープを無効にする
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab Self-Managed
前提要件:
- インスタンスへの管理者アクセス権が必要です。
インスタンスのグローバル検索のパフォーマンスを向上させるには、1つまたは複数の検索スコープを無効にします。GitLab Self-Managedインスタンスでは、すべてのグローバル検索スコープがデフォルトで有効になっています。
1つまたは複数のグローバル検索スコープを無効にするには:
- 左側のサイドバーの下部で、管理者を選択します。
- 設定 > 検索を選択します。
- 表示レベルとアクセス制御を展開します。
- 無効にするスコープのチェックボックスをオフにします。
- 変更を保存を選択します。
グローバル検索の検証
グローバル検索では、以下を含む検索はすべて不正なものとして無視され、ログに記録されます:
- 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キーを押して検索するか、リストから選択します。
結果が表示されます。結果をフィルター処理するには、左側のサイドバーでフィルターを選択します。
フルパスでプロジェクトを検索
検索ボックスに完全なパス(ネームスペースを含む)を入力して、プロジェクトを検索できます。プロジェクトのパスを入力すると、オートコンプリート候補が表示されます。
次に例を示します:
gitlab-org/gitlabは、gitlab-orgネームスペース内のgitlabプロジェクトを検索します。gitlab-org/は、gitlab-orgネームスペースに属するプロジェクトのオートコンプリート候補を表示します。
検索結果にアーカイブされたプロジェクトを含める
デフォルトでは、アーカイブされたプロジェクトは検索結果から除外されます。検索結果にアーカイブされたプロジェクトを含めるには、次の操作を行います:
- 検索ページの左側のサイドバーで、アーカイブを含むチェックボックスをオンにします。
- 左側のサイドバーで、適用を選択します。
コードを検索する
プロジェクトでコードを検索するには:
- 左側のサイドバーで、検索または移動先を選択して、プロジェクトを見つけます。
- 検索または移動先を再度選択し、検索するコードを入力します。
- 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を返します。 |