我试图使用新的Github GraphQL api(v4),我似乎无法弄清楚如何获得 master 的最后x次提交。我使用了存储库和参考,但他们仍然没有给我我需要的东西。
下面的查询几乎可以为我提供所需内容:
query{
repository(owner: "typelevel", name: "cats") {
refs(refPrefix:"refs/heads/", last: 5) {
edges{
node {
associatedPullRequests(states: MERGED, last: 5) {
edges{
node {
title
baseRef {
name
prefix
}
baseRefName
commits(last: 10) {
edges {
node {
commit {
abbreviatedOid
message
}
}
}
}
}
}
}
}
}
}
}
}
但:
我也尝试过使用 defaultBranchRef ,但这也不起作用:
query{
repository(owner: "typelevel", name: "cats") {
defaultBranchRef {
name
prefix
associatedPullRequests(states: [MERGED], last: 5) {
edges {
node {
title
}
}
}
}
}
}
我一直在使用Github api页面上的explorer app测试查询。
有什么想法吗?
答案 0 :(得分:8)
我能够解决这个问题:
query {
repository(owner: "typelevel", name: "cats") {
ref(qualifiedName: "master") {
target {
... on Commit {
history(first: 10) {
pageInfo {
hasNextPage
endCursor
}
edges {
node {
oid
messageHeadline
}
}
}
}
}
}
}
}
修改this上链接的Github Platform Community查询。
答案 1 :(得分:1)
在这种情况下,使用history
会更好吗?
请参阅this thread
“
ref
”(参考的简称)是指向git提交的任何内容。这可以是本地分支,标签,远程分支等。例如,master
将被视为参考。在这种情况下,您可以使用
ref
类型上的Repository
字段来获取针对提交的引用。
从该提交中,您可以获得所有提交的父项。如果您定位master
,则可以获取git存储库的主history
。
query {
node(id: "MDEwOlJlcG9zaXRvcnk4NDM5MTQ3") {
... on Repository {
ref(qualifiedName: "master") {
target {
... on Commit {
id
history(first: 30) {
totalCount
pageInfo {
hasNextPage
}
edges {
node {
oid
message
author {
name
email
date
}
}
}
}
}
}
}
}
}
}