Skip to main content

Issue及びPull Requestのフィルタリングと検索

GitHub上のリポジトリに関する詳細情報を見つけるために、そのリポジトリに関連するIssueやPull Requestをフィルタリング、ソート、検索できます。

Tool navigation

ヒント: GitHub CLI を使用して、issue または pull request をフィルタリングすることもできます。 詳細については、GitHub CLI ドキュメントの「gh issue list」または「gh pr list」を参照してください。

Issue およびPull Requestをフィルタリングする

Issue およびPull Requestには、適用してリストを整理するためのデフォルトのフィルタが備わっています。

検索修飾子 review-requested:[USERNAME] または team-review-requested:[TEAMNAME] が使用された、自分または自分がメンバーであるチームが確認を求められているプルリクエストを探すことができます。 詳しくは、「Issue およびプルリクエストを検索する」を参照してください。

Issue およびPull Requestをフィルタリングして、以下を探すことができます:

  • すべてのオープンな Issue およびPull Request
  • 自分で作成した Issue およびPull Request
  • 自分に割り当てられた Issue およびPull Request
  • @mentioned されていた現在の issue と pull request

ヒント: GitHub CLI を使用して、issue または pull request をフィルタリングすることもできます。 詳細については、GitHub CLI ドキュメントの「gh issue list」または「gh pr list」を参照してください。

  1. GitHub で、リポジトリのメイン ページに移動します。

  2. リポジトリ名の下で、 [イシュー] または [pull request] をクリックします。

    リポジトリのメイン ページのスクリーンショット。 水平ナビゲーション バーでは、[イシュー] と [pull request] というラベルが付いた 2 つのタブが、それぞれ濃いオレンジ色の枠線で囲まれています。

  3. 一覧の上にある [フィルター] を選び、関心のあるフィルターの種類をクリックします。

    リポジトリの issue の一覧のスクリーンショット。 一覧の上には、[フィルター] というラベルが付いたドロップダウン メニューが濃いオレンジ色の枠線で囲まれています。

issue に対する高度なフィルターの構築

Note

issue の種類、sub-issue、および高度な issue の検索は、現在、組織のオプトイン beta にあります。 詳細を確認し、待機リストに組織を追加するには、「GitHub ブログ」を参照してください。

リポジトリの問題ページで、ブール型クエリと入れ子になったクエリを使用して高度なフィルターを作成できます。 フィルターを入力すると、GitHub に使用可能な修飾子が表示され、値が提案され、フィルターに問題がある場合は警告が表示されます。

ブール演算子の使用

AND 演算子と OR 演算子を使用してフィルターを絞り込むことができます。

両方のステートメントが true の結果が必要な場合は、AND を使用します。 次のフィルター例では、結果は、@octocat ユーザーに割り当てられている "バグ修正" ラベルに関する issue で構成されます。

label:"Bug fix" AND assignee:octocat

いずれかのステートメントが true の結果を返すには、OR を使用します。 次の例では、@octocat または @hubot に割り当てられた issue が結果に含まれます。

assignee:octocat OR assignee:hubot

AND 演算子と OR 演算子を使用しない場合、GitHub は、orgrepo または user フィールドを使用して、スペースが OR 演算子として扱われる所有権でフィルター処理しない限り、ステートメント間のスペースを AND 演算子として扱います。

より複雑なフィルターにかっこを使用する

かっこを使用して、フィルターとグループ修飾子を入れ子にすることもできます。 次の例では、"バグ" の問題の種類を持つ @octocat に割り当てられるか、"Enchancement" issue の種類を持つ @hubot に割り当てられた問題が結果に含まれます。

(type:"Bug" AND assignee:octocat) OR (type:"Enhancement" AND assignee:hubot)

最大 5 レベルの深さまでのかっこを使用してフィルターを入れ子にすることができます。 現在、かっこ内に repoorg、または user 修飾子を含めることはできません。

Issue およびPull Requestをアサインされた人でフィルタリングする

issue または pull request を他のユーザーに割り当てると、作業しているユーザーに基づいて項目を見つけることができます。

  1. GitHub で、リポジトリのメイン ページに移動します。

  2. リポジトリ名の下で、 [イシュー] または [pull request] をクリックします。

    リポジトリのメイン ページのスクリーンショット。 水平ナビゲーション バーでは、[イシュー] と [pull request] というラベルが付いた 2 つのタブが、それぞれ濃いオレンジ色の枠線で囲まれています。

  3. issue または pull request の一覧の上にある [担当者] ドロップダウン メニューを選びます。

    issue の一覧のスクリーンショット。 一覧の上にあるヘッダーの [担当者] というラベルが付いたドロップダウン メニューが濃いオレンジ色の枠線で囲まれています。

  4. [Assignee] ドロップダウンメニューには、リポジトリへの書き込み権限のあるすべてのユーザがリストされます。 確認したい割り当て済みの項目を持つユーザの名前をクリックするか、 Assigned to nobody をクリックして未割り当ての issue を表示します。

フィルターの選択を解除するには、 Clear current search query, filters, and sorts をクリックします。

Issue およびPull Requestをラベルでフィルタリングする

issue または pull request にラベルを適用すると、そのラベルに基づいて項目を見つけることができます。

  1. GitHub で、リポジトリのメイン ページに移動します。

  2. リポジトリ名の下で、 [イシュー] または [pull request] をクリックします。

    リポジトリのメイン ページのスクリーンショット。 水平ナビゲーション バーでは、[イシュー] と [pull request] というラベルが付いた 2 つのタブが、それぞれ濃いオレンジ色の枠線で囲まれています。

  3. issue または pull request の一覧の上にある Labels をクリックします。

    リポジトリの issue の一覧のスクリーンショット。 一覧の上には、ラベル アイコンと [ラベル] というラベルが付いたボタンが濃いオレンジ色の枠線で囲まれています。

  4. ラベルの一覧でラベルをクリックします。

ヒント: フィルターの選択を解除するには、 Clear current search query, filters, and sorts をクリックします。

issue の種類によるフィルター処理

Note

issue の種類、sub-issue、および高度な issue の検索は、現在、組織のオプトイン beta にあります。 詳細を確認し、待機リストに組織を追加するには、「GitHub ブログ」を参照してください。

組織で issue の種類を使用している場合は、特定の種類の issue をフィルター処理できます。 フィルターに直接 type: 修飾子を入力することもできます。

  1. GitHub で、リポジトリのメイン ページに移動します。

  2. リポジトリ名の下にある [イシュー] をクリックします。

    リポジトリのメイン ページのスクリーンショット。 水平ナビゲーション バーでは、[イシュー] というラベルが付いたタブが濃いオレンジ色の枠線で囲まれています。

  3. issue の一覧の上にある [型] ドロップダウン メニューを選びます。

    issue の一覧のスクリーンショット。 一覧の上にあるヘッダーで、[種類] というラベルの付いたドロップダウン メニューが濃いオレンジ色で囲まれており、[issue の種類] メニューが開いています。

  4. 種類の一覧で、issue の種類をクリックします。

プルリクエストをレビューステータスでフィルタリングする

フィルタを使用して、レビューステータスでPull Requestをフィルタリングしたり、自分でレビューしたPull Requestや他のユーザにレビューするよう依頼されたPull Requestを検索したりできます。

Pull Requestのリポジトリのリストをフィルタリングして、次の検索を行えます:

  1. GitHub で、リポジトリのメイン ページに移動します。

  2. リポジトリ名の下にある [pull request] をクリックします。

    リポジトリのメイン ページのスクリーンショット。 水平ナビゲーション バーでは、[pull request] というラベルが付いたタブが濃いオレンジ色の枠線で囲まれています。

  3. 右上隅の [レビュー] ドロップダウンメニューを選びます。

    pull request の一覧の上にあるフィルター メニューのスクリーンショット。 [レビュー] ドロップダウンが濃いオレンジ色の枠線で囲まれています。

  4. フィルタを選択してます。そのフィルタのステータスのPull Requestすべてが検索されます。

検索を使用して Issue およびプルリクエストをフィルタリングする

特定の条件を満たすIssueやPull Requestを検索するために、フィルターを使うことができます。

IssueやPull Requestの検索

Issue とPull Requestの検索バーを使用すると、独自のカスタムフィルターを定義し、さまざまな基準で並べ替えることができます。 検索バーは、各リポジトリの [Issue] タブと [Pull requests] タブ、および [Issue] ダッシュボードと [Pull requests] ダッシュボードにあります。

リポジトリの issue の一覧のスクリーンショット。 一覧の上には、"is:issue is:open" というクエリを含む検索フィールドが濃いオレンジで囲まれています。

ヒント: キーボードショートカットを使えば、Issueあるいはプルリクエストのリストの上にある検索バー上のカーソルに集中できます。 詳しくは、「キーボード ショートカット」を参照してください。

GitHub CLI の詳細については、「GitHub CLI について」を参照してください。

GitHub CLIを使ってIssueやPull Requestを検索できます。 --search 引数と検索クエリと共に gh issue list または gh pr list サブコマンドを使用します。

たとえば、担当者がいなくて、help wanted または bug ラベルを持つすべての issue を、作成された日付順に一覧表示できます。

gh issue list --search 'no:assignee label:"help wanted",bug sort:created-asc'

octo-org/octo-team チームにメンションするすべての pull request を一覧表示することもできます。

gh pr list --search "team:octo-org/octo-team"

検索語について

Issue およびPull Requestの検索用語により、次のことができます:

  • 作成者ごとに issue と pull request をフィルター処理します: state:open type:issue author:octocat
  • 特定のユーザーを含むが必ずしも @mention していない issue と pull request をフィルター処理します: state:open type:issue involves:octocat
  • 担当者ごとに issue と pull request をフィルター処理します: state:open type:issue assignee:octocat
  • ラベルごとに issue と pull request をフィルター処理します: state:open type:issue label:"bug"
  • 語句の前に - を使用して、検索語句を除外します: state:open type:issue -author:octocat

ヒント: 論理和あるいは論理積を使って、ラベルごとに issue と pull request をフィルター処理できます。

  • 論理和を使用して issue をフィルター処理するには、コンマ構文を使用します: label:"bug","wip"
  • 論理積を使用して issue をフィルター処理するには、別のラベル フィルターを使用します: label:"bug" label:"wip"

Issueについては、以下も検索に利用できます。

  • クローズしている参照ごとに、pull request にリンクされている issue をフィルター処理します (linked:pr)
  • クローズされた理由により issue をフィルタリングします: is:closed reason:completed または is:closed reason:"not planned"
  • 特定のタイプの問題をフィルタリングします: is:open type:"Bug"

Pull Requestについては、検索を利用して以下の操作もできます。

  • ドラフトの pull request をフィルター処理する: is:draft
  • まだレビューされていない pull request をフィルター処理する: state:open type:pr review:none
  • マージできるようになる前にレビューを必要とする pull request をフィルター処理する: state:open type:pr review:required
  • レビュー担当者が承認した pull request をフィルター処理する: state:open type:pr review:approved
  • レビュー担当者が変更を求めている pull request をフィルター処理する: state:open type:pr review:changes_requested
  • レビュー担当者ごとに pull request をフィルター処理する: state:open type:pr reviewed-by:octocat
  • レビューを要求した特定のユーザーで pull request をフィルター処理する: state:open type:pr review-requested:octocat
  • 誰かから直接レビューするよう求められた pull request をフィルター処理する: state:open type:pr user-review-requested:@me
  • レビューを要求したチームで pull request をフィルター処理する: state:open type:pr team-review-requested:github/docs
  • pull request がクローズできる issue にリンクされている pull request をフィルター処理する: linked:issue
  • merging の状態でプルリクエストをフィルター処理する: is:merged または is:unmerged

Issue およびPull Requestをソートする

フィルターは、特定の期間の情報をよりよく提供するためにソートできます。

これらのフィルタービューでソートできます。

  • 一番新しく作成された Issue またはPull Request
  • 一番古くに作成された Issue またはPull Request
  • 最もコメントされた Issue またはPull Request
  • 最もコメントされていない Issue およびPull Request
  • 一番新しく更新された Issue またはPull Request
  • 一番古くに更新された Issue またはPull Request
  • 最もリアクションがあったIssueまたはPull Request
  1. GitHub で、リポジトリのメイン ページに移動します。

  2. リポジトリ名の下で、 [イシュー] または [pull request] をクリックします。

    リポジトリのメイン ページのスクリーンショット。 水平ナビゲーション バーでは、[イシュー] と [pull request] というラベルが付いた 2 つのタブが、それぞれ濃いオレンジ色の枠線で囲まれています。

  3. issue または pull request の一覧の上にある [並べ替え] ドロップダウン メニューを選び、並べ替え方法をクリックします。

    リポジトリの issue の一覧のスクリーンショット。 一覧の上には、[並べ替え] というラベルが付いたドロップダウン メニューが濃いオレンジ色の枠線で囲まれています。

並べ替えの選択を解除するには、 [並べ替え] > [最新] をクリックします。

フィルターを共有する

一定の Issue およびPull Requestをフィルタリングする場合、ブラウザの URL は、次の表示にマッチするように自動的に更新されます。

Issue が生成した URL は、どのユーザにも送れます。そして、あなたが見ているフィルタビューと同じフィルタで表示できます。

たとえば、Hubot にアサインされた Issue でフィルタリングし、最も古いオープン Issue でソートした場合、あなたの URL は、次のように更新されます:

/issues?q=state:open+type:issue+assignee:hubot+sort:created-asc

参考資料