如何从GitHub的API中获取问题

GitHub具有以下API以从存储库获取“问题”:

GET /repos/:owner/:repo/issues

好的,好的吗?如果你仔细看,你会注意到这一部分:

"pull_request": {
  "url": "https://api.github.com/repos/cheddar-lang/Cheddar/pulls/76",
  "html_url": "https://github.com/cheddar-lang/Cheddar/pull/76",
  "diff_url": "https://github.com/cheddar-lang/Cheddar/pull/76.diff",
  "patch_url": "https://github.com/cheddar-lang/Cheddar/pull/76.patch"
}

这意味着它是一个拉动请求.

我已经做了额外的测试,看起来这个API调用返回了Pull Requests.

我理解GitHub在内部将问题和拉请求都视为同一个问题,但无论如何只能得到问题(排除请求)?

我知道我可以在客户端过滤问题.但是,如果存储库与问题相比具有更高的Pull请求比率,那么我不想做出大量的API请求.

最佳答案 您应该可以使用 GraphQL API执行此操作

事实上,GraphQL API的目的只是准确指定您想要的内容.

所以你可以这样查询:

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

这将返回特定存储库的前100个问题,并且仅包括每个问题的ID,编号,标题和URL.

有用的链接:
存储库文档:https://developer.github.com/early-access/graphql/object/repository/

问题文档:https://developer.github.com/early-access/graphql/object/issue/

点赞