首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用GitHub的GraphQL API,我如何知道是谁关闭了问题或请求?

使用GitHub的GraphQL API,我如何知道是谁关闭了问题或请求?
EN

Stack Overflow用户
提问于 2018-03-16 18:09:55
回答 1查看 1.3K关注 0票数 5

给定一个问题或请求号,我希望使用对GitHub GraphQL API的一个查询获得以下信息

  • 无论是问题还是请求
  • 发行的状态(公开,关闭)或公共关系(公开,关闭,合并)
  • 如果问题或公关已经结束,由谁来关闭,何时结束
  • 如果问题或公关合并了,谁合并了,何时合并?

使用以下查询,除了确定关闭了问题或公关之外,所有这些工作都在进行:

代码语言:javascript
复制
{
  repository(owner: "Automattic", name: "wp-calypso") {
    issueOrPullRequest(number: 23226) {
      __typename
      ... on Closable {
        closed
        closedAt
        # TODO: How to get ClosedEvent { actor } ?
      }
      ... on Issue {
        issueState: state
        title
      }
      ... on PullRequest {
        prState: state
        title
        merged
        mergedAt
        mergeCommit {
          committer {
            user {
              login
            }
          }
        }
      }
    }
  }
}

我正在使用GitHub的GraphQL Explorer工具运行这个查询:https://developer.github.com/v4/explorer/

我可以看到问题或公关作为一个Closable,但我认为我需要从那里到最后一个影响该对象的ClosedEvent。这是我还没弄清楚的部分。

在GitHub的v3 REST中,确定所有这些信息可能需要2个请求。对于closed (而不是merged)的拉请求,closed_by字段仅在请求拉请求作为问题(通过issues API调用)时才出现。所有其他拉请求信息都可以通过pulls API调用获得。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-16 18:48:34

一个迂回(和丑陋)的方法,让演员谁关闭这个问题是如下(灵感来自这个回答)。我希望有一个更好的方法,但现在有一个方法。

诀窍是在给定的时间线中查询大量事件(如果您绝对确信在问题/PR关闭后没有评论,您可以说是timeline(last: 1)),在其中查找ClosedEventMergedEvent并提取actor

代码语言:javascript
复制
{
  repository(owner: "Automattic", name: "wp-calypso") {
    issueOrPullRequest(number: 23226) {
      __typename
      ... on Closable {
        closed
        closedAt
      }
      ... on Issue {
        timeline(last: 100) {
          edges {
            node {
              __typename
              ... on ClosedEvent {
                actor{
                  login
                }
              }
            }
          }
        }
      }
      ... on PullRequest {
        timeline(last: 100) {
          edges {
            node {
              __typename
              ... on MergedEvent {
                actor{
                  login
                }
              }
            }
          }
        }
      }
    }
  }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49327083

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档