GitHubのIssue検索でできること
チームメンバのタスク消化量をIssueの検索だけで可視化できないかと思ってIssueの検索についてざっくり調べました。
ざっくりとまとめておきます。
基本
- スペース区切りで複数条件を指定可。 AND条件。
- 指定した条件は基本的にはその文字列の全文検索
- 「:」で区切られた各種フィルターを指定できる
in
文字列がどのフィールドに含まれているかを指定する。
指定できるのはtitle, body, comment。カンマ区切りで複数指定可
- in:title
- in:title,body
- in:comment
is:public / is:private
リポジトリ横断で検索する場合にpublicのみ、privateのみを指定できる
当然、privateは自分がアクセス権を持っているリポジトリのみ
- is:public
- is:private
author
IssueまたはPullRequestの作成者
- author:shunjikonishi
assignee
現在のassignee
- assignee:shunjikonishi
mentioned
IssueまたはPullRequestでメンションされている人
- mentioned:shunjikonishi
commenter
コメントした人
- commenter:shunjikonishi
involves
関係者(author, assignee, mentioned, commenter)すべて
- involves:shunjikonishi
team
Organizationリポジトリ限定。チームに対するメンション
- team:code-check/owners
state
openまたはclosedの状態
- state:open
- state:closed
label
ラベル。複数指定可。「-」をつけることで、「そのラベルを持たない」という検索条件も指定できる
- label:bug
- label:bug label:resolved
- label:priority -label:bug
no
label, assignee, milestoneを持たない
- no:label
- no:assignee
- no:milestone
language
リポジトリの使用言語?いまいち使い道がわからない
- language:ruby
- language:bash
の作成者
is
状態。open/closedはstateでも指定できるがどっちでも良い。
- is:open
- is:closed
- is:merged
- is:unmerged
- is:pr
- is:issue
created / updated / mereged /closed
日付時刻での絞り込み
- created 作成日時
- updated 更新日時
- merged マージ日時
- closed クローズ日時
フォーマットは YYYY-MM-DD または YYYY-MM-DDTHH:MM:SS+09:00
From/Toは不等号または「..」で範囲を指定する
- created:<2015-04-01
- updated:>=2015-04-01T18:00:00+09:00
- merged:2015-04-01..2015-05-01
「..」を使った場合、境界値を含む(らしい)
comments
コメントの数
- comments:>100
- comments:500..1000
user / repo
リポジトリ横断検索で特定のユーザ、またはリポジトリに範囲を限定
- user:shunjikonishi
- user:shunjikonishi/roomframework
SHA hash
指定の文字列から始まるcommitを持つPullRequest
7文字以上の16進文字列がcommit hashと解釈される(らしい)
- e1109ab
- 0eff326d213c
sort
ソート。以下の6つ。commentedはコメント数
- created-asc
- created-desc
- updated-asc
- updated-desc
- commented-desc
- commented-asc
まとめ
mergedByとかcommiterとかあれば最初の目的は検索のみで達成できたと思うが、残念ながらないらしい。
運用カバーとしてmergeまたはcloseの時点でassigneeを適切に設定しておけば、mergedの範囲検索でその期間の開発者のパフォーマンスレビューはできそうな気がする