从Github的某个里程碑中获取问题

时间:2013-06-05 22:01:06

标签: github

我正在寻找的是一种获取特定里程碑问题列表的方法。 Github看起来像里程碑有点像标签,因为你可以要求问题的标签,但不是给定标签的问题。

我知道我可以通过Github网站上的里程碑来过滤我的问题,但这遍历了多个页面,我想要一个简单的方法来查看更适合打印机版本的里程碑的所有问题。

任何提示?

5 个答案:

答案 0 :(得分:1)

你可以使用GitHub的API。有关如何获取回购的问题列表,请参阅here并注意里程碑参数。您将获得的响应是​​一个大型JSON文档,因此您必须创建一个小脚本来仅提取问题的标题,或者使用grep或类似jq的内容。

另请注意API responses are also paged,但您可以将分页设置为每页100个条目,这通常就足够了。如果没有,您将再次创建一个小脚本来获取所有页面(或手动执行)。

答案 1 :(得分:1)

您可以使用GraphQL API which is V4。并执行类似的操作:

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

答案 2 :(得分:0)

我找不到任何 easy 方法。这对我来说是一种享受:

  1. execFile(在OSX上)。集线器由GitHub创建
  2. cd到要访问其来源的本地存储库。
  3. brew install hub
  4. 利润。

查看里程碑时,在GitHub上的URL中找到问题#(在上面的示例中为21)。
可在以下位置找到集线器的文档,尤其是格式(-f)标志:https://hub.github.com/hub-issue.1.html

答案 3 :(得分:0)

首先使用this查找里程碑列表 然后通过每个里程碑的里程碑号查询this API

答案 4 :(得分:0)

给定 $title 中的里程碑 $owner/$repo,我们可以使用 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 ""