GitHub GraphQL查询未返回上次提交
无论我在哪里读到,我都可以使用以下GraphQL查询获得GitHub存储库的最新提交:GitHub GraphQL查询未返回上次提交,github,graphql,Github,Graphql,无论我在哪里读到,我都可以使用以下GraphQL查询获得GitHub存储库的最新提交: { repository(owner: "petermorlion", name: "RedStar.Amounts") { defaultBranchRef { name target { ... on Commit { history(first: 1) { edges { node {
{
repository(owner: "petermorlion", name: "RedStar.Amounts") {
defaultBranchRef {
name
target {
... on Commit {
history(first: 1) {
edges {
node {
committedDate
}
}
}
}
}
}
}
}
这是有效的。对于此存储库。正如你所看到的(在我写这篇文章的时候),和都说5月7日是最新的承诺:
但是,如果我在另一个存储库上运行此操作,我将获得第一次提交。将所有者更改为ystk
,将存储库名称更改为debian libidn
。GraphQL告诉我最新的提交日期是2009年10月13日:
但事实上这是2011年5月13日:
我的问题错了吗?我是否应该在某个地方添加一个
orderby
(我发现它不能添加到历史记录中?GraphQL查询实际上是正确的
出了问题的是,这本显然更老的《承诺》的日期,尽管它是在2009年写成的,但它确实比2011年的要晚。在这里,我们指的是在比另一个更晚的点上被推。这意味着提交的时间戳被修改,这可能是由于作者当时的时钟配置错误造成的
主页将始终显示最近推送的提交,例如,它显示日期为2009的提交
为了进一步详细说明,您可以检索与时间戳相关的Commit
属性:
committedDate
:本地创建提交的日期。在提交更改并受作者时钟影响时更新
authoredDate
:默认情况下与committeedDate
相同,提交更改时可以使用--date
可选参数进行更改,也受作者的时钟影响
pushedDate
:根据服务器的时间(在本例中为GitHub的时间)将提交推送到存储库的日期
从上面看,您似乎更喜欢使用pushedDate
,因为这将给出提交到回购的真实顺序。您是否尝试过添加orderby create date,可能类似于orderby:{field:CREATED_AT,direction:ASC}对于可复制的演示,您可以查看我为此创建的存储库:authorSiavasFiroozbakht
和repoTestRepo
。新提交显示为旧提交,尽管它是在初始提交后推送的。再进一步搜索,我尝试用替换查询中的提交块。。。在提交时{committedDate}
这会给我最后一次提交吗?我已经详细阐述了Commit
中与时间戳相关的字段。您可以使用pushedDate
获取推送提交的实际日期。注意:在查询中更改或添加字段实际上不会应用它们的任何筛选<代码>历史记录