簡體   English   中英

從 Github 中的某個里程碑獲取問題

[英]Getting the issues from a certain milestone in Github

我正在尋找的只是一種獲取給定里程碑的問題列表的方法。 看起來 Github 對待里程碑有點像標簽,因為您可以要求問題的標簽,但不能要求給定標簽的問題。

我知道我可以在 Github 網站上按里程碑過濾我的問題,但這會遍歷多個頁面,我想要一種簡單的方法來查看一個更適合打印機的版本里程碑的所有問題。

有小費嗎?

您可以為此使用 GitHub 的 API。 請參閱此處了解如何獲取 repo 的問題列表並注意里程碑參數。 您將獲得的響應是​​一個大的 JSON 文檔,因此您必須創建一個小腳本來僅提取問題的標題,或者使用 grep 或jq 之類的東西

另請注意, API 響應也是分頁的,但您可以將分頁設置為每頁 100 個條目,這通常就足夠了。 如果沒有,您將不得不再次創建一個小腳本來獲取所有頁面(或手動執行)。

您可以使用V4GraphQL API 並執行以下操作:

{
  repository(owner: "X", name: "X") {
    milestone(number: X) {
      id
      issues(first: 100) {
        edges {
          node {
            id,
            title
          }
        }
      }
    }
  }
}

我找不到任何簡單的方法。 這對我來說是一種享受:

  1. brew install hub (在 OSX 上)。 Hub由GitHub創建
  2. cd 到您要訪問其源的本地存儲庫。
  3. hub issue -M 21 -f "%I,%t,%L,%b,%au,%as" > save_here.csv
  4. 利潤。

查看里程碑時,請在 GitHub 上的 URL 中找到問題 #(上例中的 21)。
可以在此處找到 hub 的文檔,特別是格式 (-f) 標志: https : //hub.github.com/hub-issue.1.html

首先使用這個找到里程碑列表然后通過每個里程碑的里程碑編號查詢這個api

給定$owner/$repo的里程碑$title ,我們可以使用 curl 和 jq 列出該里程碑中的問題:

api_url="https://api.github.com/repos/$owner/$repo"
MS=$(curl -s "$api_url/milestones" | jq '.[] | select(.title == "QA")')
MS_number=$(echo "$MS" | jq .number -r)
MS_state=$(echo "$MS" | jq .state -r)

echo "Found $title milestone with state=$MS_state"
echo ""

issues=$(curl -s "$api_url/issues?milestone=$MS_number" | jq '.[].number' -r)
echo "The following issues are in the QA milestone:"
for i in $issues; do
  issue_title=$(curl -s "$api_url/issues/$i"  | jq '.title' -r)
  echo "  https://github/$owner/$repo/issues/$i - $issue_title"
done
echo ""

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM