GitLab での検索

GitLabには基本検索と詳細検索の2種類があります。

どちらの検索も、コードを検索するとき以外は同じです。

  • 基本検索を使用してコードを検索する場合、検索対象は一度に一つのプロジェクトです。
  • 詳細検索を使用してコードを検索すると、一度にすべてのプロジェクトが検索対象になります。

グローバル検索スコープ

GitLab 14.3で導入されました

インスタンスのグローバル検索のパフォーマンスを向上させるために、管理者は一つ以上のops 機能フラグを無効にすることで検索範囲を制限することができます。

スコープ機能フラグ説明
コードglobal_search_code_tab有効にすると、グローバル検索にコードが含まれます。
コミットglobal_search_commits_tab有効にすると、グローバル検索にコミットが含まれます。
イシューglobal_search_issues_tab有効にすると、グローバル検索にイシューが含まれます。
マージリクエストglobal_search_merge_requests_tab有効にすると、グローバル検索にマージリクエストが含まれます。
ユーザーglobal_search_users_tab有効にすると、グローバル検索にユーザーが含まれます。
Wikiglobal_search_wiki_tab有効にすると、グローバル検索にプロジェクトWikiとグループWikiが含まれます。

セルフマネージドインスタンスでは、すべてのグローバル検索スコープがデフォルトで有効になっています。

グローバル検索の検証

グローバル検索では、以下のような検索は無視され、不正な検索として記録されます:

  • 2文字未満
  • 100文字以上(URL検索語は200文字以内)
  • ストップワードのみ(例えば、theandif )。
  • 未知の単語scope
  • group_id またはproject_id は完全な数値ではありません。
  • repository_ref またはproject_ref で、Git refnameが許さない特殊文字を含むもの。

以上を含む検索はエラーフラグを立てるだけです:

  • 4096文字
  • 64文字

オートコンプリート候補

検索ボックスに入力すると、オートコンプリート候補が表示されます:

  • プロジェクトとグループ
  • ユーザー
  • ヘルプ
  • プロジェクト機能(マイルストーンなど)
  • 設定(ユーザー設定など)
  • 最近閲覧したマージリクエスト
  • 最近閲覧したイシューとエピック
  • GitLab Flavored Markdownによるプロジェクト内のイシューの参照

すべてのGitLabで検索

すべてのGitLabを検索します:

  1. 左サイドバーの一番上にある「検索」を選択するか、次のページに進んでください。
  2. 検索クエリを入力します。少なくとも2文字を入力する必要があります。
  3. Enter を押して検索するか、リストから選択します。

結果が表示されます。結果をフィルタリングするには、左側のサイドバーでフィルタを選択します。

プロジェクトで検索

プロジェクト内を検索するには

  1. 左のサイドバーで「検索」または「移動」を選択してあなたのプロジェクトを検索します。
  2. 検索]または[移動]を再度選択し、検索したい文字列を入力します。
  3. Enter を押して検索するか、リストから選択します。

結果が表示されます。結果をフィルタリングするには、左側のサイドバーでフィルタを選択します。

フルパスでプロジェクトを検索

  • GitLab 15.9でfull_path_project_search というフラグで導入されました。デフォルトでは無効です。
  • GitLab 15.11で一般的に利用可能に。機能フラグfull_path_project_search を削除しました。

検索ボックスにプロジェクトのフルパス(所属する名前空間を含む)を入力することで、プロジェクトを検索することができます。プロジェクトのパスを入力すると、オートコンプリート候補が表示されます。

使用例:

  • gitlab-org/gitlabgitlab-org ネームスペースでgitlab プロジェクトを検索します。
  • gitlab-org/ gitlab-org 名前空間に属するプロジェクトの候補をオートコンプリートで表示します。

アーカイブされたプロジェクトを検索結果に含めることができます。

  • GitLab 16.1 でsearch_projects_hide_archivedというフラグで導入されました。デフォルトでは無効になっています。
  • GitLab 16.3で一般的に利用可能に。機能フラグsearch_projects_hide_archived を削除しました。

デフォルトでは、アーカイブされたプロジェクトは検索結果から除外されます。アーカイブされたプロジェクトを検索対象に含めるには:

  1. プロジェクト検索ページの左サイドバーで、「アーカイブを含める」チェックボックスを選択します。
  2. 左サイドバーで、Applyを選択します。

アーカイブされたプロジェクトのイシューを検索結果から除外します。

GitLab 16.2 でsearch_issues_hide_archived_projectsというフラグで導入されました。デフォルトでは無効になっています。

フラグ: セルフマネジメントのGitLabでは、デフォルトではこの機能は利用できません。利用可能にするには、管理者がsearch_issues_hide_archived_projects という機能フラグを有効にします。GitLab.comでは、この機能は利用できません。

デフォルトでは、アーカイブされたプロジェクトのイシューも検索結果に含まれます。アーカイブされたプロジェクトのイシューを除外するには、search_issues_hide_archived_projects フラグを有効にしてください。

search_issues_hide_archived_projects を有効にしてアーカイブされたプロジェクトのイシューを検索結果に含めるには、URLにパラメータinclude_archived=true を追加する必要があります。

コードの検索

プロジェクト内のコードを検索します:

  1. 左のサイドバーで「検索」または「移動」を選択してあなたのプロジェクトを検索します。
  2. 検索]または[移動]を再度選択し、検索したいコードを入力します。
  3. Enter を押して検索するか、リストから選択します。

コード検索では、ファイルの最初の結果のみが表示されます。すべてのGitLabのコードを検索するには、管理者に高度な検索を有効にするよう依頼してください。

GitLab 14.7 で導入されました

検索結果が見つかった後、その検索結果が見つかった行の最後の変更者を見ることができます。

  1. コード検索結果から、行番号にカーソルを合わせてください。
  2. 左側の「View blame」を選択します。

言語によるコード検索結果のフィルタリング

GitLab 15.10 で導入されました

コード検索結果を1つ以上の言語でフィルタリングします:

  1. コード検索ページの左サイドバーで、1つ以上の言語を選択します。
  2. 左サイドバーで、Applyを選択します。

コミットSHAを検索

コミットのSHAを検索するには

  1. 左のサイドバーで「検索」または「移動」を選択してあなたのプロジェクトを検索します。
  2. 検索]または[移動]を再度選択し、検索したいコミットSHAを入力します。
  3. Enter を押して検索するか、リストから選択します。

単一の結果が返された場合、GitLabはコミット結果にリダイレクトし、検索結果ページに戻るオプションを与えます。

特定の用語を検索

タイトルや説明文に含まれる特定の用語でイシューやマージリクエストをフィルタリングできます。

  • 構文
    • 検索はクエリ内のすべての単語を任意の順序で検索します。例えば、display bug でイシューを検索すると、これらの単語の両方に一致するすべてのイシューが、任意の順序で返されます。
    • 正確な単語を検索するには、二重引用符を使用します:"display bug".
  • 制限
    • パフォーマンス上の理由から、3文字より短い用語は無視されます。例:included in titles のイシューを検索する場合は、次のようになります。included titles
    • 検索は1クエリにつき4096文字、64語までに制限されています。
    • イシューを検索する場合、部分一致は許可されません。例えば、play を検索すると、displayという単語を持つイシューは返されません。しかし、単語のバリエーションは一致するため、displays を検索すると、displayという単語を持つイシューも返されます。

履歴から検索を実行

イシューやマージリクエストの履歴から検索を実行することができます。検索履歴はブラウザのローカルに保存されます。履歴から検索を実行するには

  1. 左のサイドバーで「検索」または「移動」を選択してあなたのプロジェクトを検索します。
  2. 最近の検索を表示するには

    • イシューについては、左サイドバーで「プラン > イシュー」を選択します。リストの上、検索ボックスの左側にある({履歴}) を選択します。
    • マージリクエストについては、左サイドバーで [コード] > [マージリクエスト] を選択します。リストの上、検索ボックスの左側にある [最近の検索] を選択します。
  3. ドロップダウンリストから、検索を選択します。