Github GraphQl-如何获取标签之间的提交列表

时间:2019-05-31 20:42:27

标签: graphql github-api github-graphql

使用Github GraphQL我想回答这个问题:

  

在版本/标签之间,哪些提交已合并到master中?

如果我要在命令行上执行,结果应该类似于此问题Get commit list between tags in Git的结果。

我正在使用开发人员资源管理器,想知道我是否可以通过单个查询执行此操作,或者是否需要多个查询。我尝试了以下操作,但它没有给我未标记的标签之间的提交,只是没有标记的提交。

{
  repository(owner: "CoolCompany", name: "awesome-new-ui") {
    refs(refPrefix: "refs/tags/", first: 2, orderBy: {field: TAG_COMMIT_DATE, direction: DESC}) {
      edges {
        node {
          id
          name
          target {
            oid
            ... on Commit {
              author {
                date
                email
                name
              }
              message
            }
          }
        }
      }
    }
  }
}

1 个答案:

答案 0 :(得分:0)

Github GraphQL社区的

@ lee-dohm帮助我找到了一个发布于here

的解决方案

我也可以在这里粘贴解决方案。看来这个问题无法通过单个查询解决,但可以通过2个相互配合的方法来解决:

第1步:获取最新版本信息。您也可以修改标签的内容。

{
  repository(owner: "CoolCompany", name: "awesome-ui") {
    releases(last: 1) {
      edges{
        node{
          tagName
          createdAt
        }
      }
    }
  }
}

步骤2:使用createdAt中的值(与发行版或标签相关联)并执行以下操作:

{
  repository(owner: "CoolCompany", name: "awesome-ui") {
    nameWithOwner
    object(expression: "master") {
      ... on Commit {
        oid
        history(first: 100, since: "$createdAtDate") {
          nodes {
            oid
            messageHeadline
            author {
              user {
                login
              }
            }
            committedDate
          }
        }
      }
    }
  }
}