0

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

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

如果我要在命令行上执行此操作,结果应该类似于此问题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
            }
          }
        }
      }
    }
  }
}
4

1 回答 1

0

来自 Github GraphQL 社区的@lee-dohm 帮助我找到了一个发布在此处的解决方案

我也可以在这里粘贴我的解决方案。似乎这个问题无法通过单个查询来解决,但可以通过 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
          }
        }
      }
    }
  }
}
于 2019-06-06T22:26:58.103 回答