The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

關於 GitHub 議題追蹤 ( Issue Tracker ) 的關鍵字搜尋技巧

我們有越來越多的案子開始依賴 GitHub 幫我們做版本控制與議題追蹤,我則是越用越上癮,不但自己公司用,連客戶公司我也都強烈推薦使用,而且真正用上手且懂得箇中奧妙的人,還真的會愛不釋手。最近有個案子累計有將近 600 個 Issues 在 GitHub 上面,參與專案人數有十幾二十人,為了讓大家能找到相關的議題,學會適當的分類與篩選非常重要,今天我就要來分享一個在 GitHub 裡面做關鍵字搜尋的小技巧,這對 Issues 比較多的團隊來說,學會如何聰明的搜尋,是非常重要的一件事。

如下圖示,是 GitHub 的 Issues 介面,在該介面最上方就有個「搜尋框」,可以讓你輸入關鍵字:

不過,我們在 GitHub 上面管理的專案,有區分不同的 Milestones、不同的 Labels、還會指派 Issues 給特定人,要能順利找出那些你想找到的 Issues,確實需要一些技巧。

我想基本的切換 Milestones、點選 Labels 進行篩選、顯示指派給自己的 Issues,應該不太需要特別說明,從網頁上就能順利操作,而我要講的是我不說、你不查,就不會知道的技巧。

以下我們直接以 jQuery Mobile 在 GitHub 上的專案來做解說:



技巧 1:找出特定人建立的 Issues

找出所有由 arschmitz 建立的 Issues,有一個直接改網址的方法,請參考以下說明。

  • 先點選 Created by you 篩選出自己的 Issues

  • 然後直接在網址列換上要篩選的人的 GitHub 帳號即可


技巧 2:找出指派給特定人的 Issues

找出所有指派給 arschmitz 的 Issues,有一個直接改網址的方法,請參考以下說明。

  • 先點選 Created by you 篩選出自己的 Issues

  • 直接在網址列置換兩段文字,一段是把 created_by 換成 assigned,另一段換成特定人的帳號

技巧 3:搜尋關鍵字外加目前為 Open 或 Closed 狀態的 Issues

在 GitHub Issues 用關鍵字搜尋,預設會搜尋該專案下所有 Issues,不會區分 Milestone、Labels 或 Issues 的狀態 ( Open / Closed ),如果要特別再篩選出特定關鍵字搜尋結果的 Issues 狀態,可以加入以下指令:

  • state:open    ( 僅顯示狀態為 Open 的 Issues )
  • state:closed  ( 僅顯示狀態為 Closed 的 Issues )

如下圖示:

搜尋結果如下圖示:



技巧 4:搜尋關鍵字外加限定在某個 Milestone 的 Issues

在 GitHub Issues 用關鍵字搜尋,預設不會區分 Milestone,要限定特定 Milestone 的指令如下:

  • milestone:none    ( 限定顯示 Issues with no milestone 的 Issues )
  • milestone:26      ( 限定顯示 Milestone 編號為 26 的 Issues )

我們要怎樣查詢特定 milestone 編號為何呢?請參考下圖,先切換 Milestone,從網址列上就看的出來:



技巧 5:搜尋關鍵字外加限定特定 Labels 的 Issues

在 GitHub Issues 用關鍵字搜尋,預設不會區分 Labels,要限定特定 Labels 的指令如下:

  • label:標籤名稱                ( 限定顯示特定標籤的 Issues )
  • label:"含有空白的標籤名稱"    ( 如果標籤包含空白字元,記得前後加上雙引號 )

如下圖示:



技巧 6:搜尋關鍵字外加特定建立者的 Issues

在 GitHub Issues 用關鍵字搜尋,預設不會區分 Issues 的建立人,要限定特定建立人指令如下:

  • author:帳號

如下圖示:



技巧 7:搜尋關鍵字外加有 Tag 特定人的 Issues

我們在 GitHub Issues 可以用 @Username 來 Tag 特定人,被 Tag 的人會收到通知,但如果你想透過搜尋的方式找到特定人被 Tag 過的 Issues,就可以用以下指令進行搜尋:

  • mentions:帳號

如下圖示:

以下這個就是被 Tag 的人:



技巧 8:搜尋關鍵字外加有被指派特定人的 Issues

在 GitHub Issues 要篩選出被指派給特定人的 Issues 可以用以下指令:

  • assignee:帳號

如下圖示:



技巧 9:搜尋關鍵字外加特定建立期間的 Issues

在 GitHub Issues 要篩選出特定建立期間的 Issues 可以用以下指令:

  • created:2014-04-01     ( 限定顯示就是 2014/4/1 這天建立的 Issues )
  • created:>2014-04-01    ( 限定顯示從 2014/4/1 以後建立的 Issues,包含這個日期 )
  • created:<2014-04-01    ( 限定顯示從 2014/4/1 以前建立的 Issues,不含這個日期 )
    注意: 你不能同時下兩個 created 指令,同名的指令,GitHub 會以後面那個條件為主。

如下圖示:



技巧 10:搜尋關鍵字外加特定更新期間的 Issues

在 GitHub Issues 要篩選出特定更新期間的 Issues 可以用以下指令:

  • updated:2014-04-08     ( 此種搜尋指令搜尋結果不太精準,建議不要用 )
  • updated:>2014-04-08    ( 限定顯示從 2014/4/8 以後更新過的 Issues,包含這個日期 )
  • updated:<2014-04-08    ( 限定顯示從 2014/4/8 以前更新過的 Issues,不含這個日期 )
    注意: 你不能同時下兩個 updated 指令,同名的指令,GitHub 會以後面那個條件為主。

如下圖示:



技巧 11:搜尋關鍵字外加特定 Issues 的評論數大於、小於或等於一定數量的

在 GitHub Issues 要篩選出被指派給特定人的 Issues 可以用以下指令:

  • comments:0     ( 限定顯示沒有任何評論或留言的 Issues )
  • comments:>10   ( 限定顯示評論數量大於 10 項的 Issues )
  • comments:<3    ( 限定顯示評論數量小於 3 項的 Issues )

如下圖示:



更多完整的搜尋技巧,各位可以繼續閱讀 Searching issues 官方文件。


相關連結