gpt4 book ai didi

GitHub GraphQL 查询未返回上次提交

转载 作者:行者123 更新时间:2023-12-04 04:14:34 26 4
gpt4 key购买 nike

在我阅读的任何地方,我都可以使用这个 GraphQL 查询获取 GitHub 存储库的最新提交:

{
repository(owner: "petermorlion", name: "RedStar.Amounts") {
defaultBranchRef {
name
target {
... on Commit {
history(first: 1) {
edges {
node {
committedDate
}
}
}
}
}
}
}
}

这有效。对于这个存储库。正如你所看到的(在我写这篇文章的时候), GraphQL explorerthe GitHub UI说 5 月 7 日是最新的提交:

GitHub UI results

GitHub GraphQL results

但是,如果我在另一个存储库上运行它,则会得到第一次提交。将所有者更改为 ystk和存储库名称为 debian-libidn . GraphQL 告诉我最新的提交是 2009 年 10 月 13 日:

GitHub GraphQL wrong results

但是 the GitHub UI显示它实际上是 2011 年 5 月 13 日:

GitHub UI correct results

我的查询有错吗?我应该添加一个 orderby某处(我看到它不能添加到 history )?

最佳答案

GraphQL 查询实际上是正确的。

出现问题的是明显较旧的提交的日期,尽管它是在 2009 年编写的,但确实比 2011 年的提交更新。这里的较新是指在比另一个更晚的时间点被推送。这意味着修改了提交的时间戳,这可能是由于作者当时的时钟配置错误造成的。

主页将始终显示最近推送的提交,对于 debian-libidn例如,它显示了 2009 年的日期。

更详细地说,Commit 有三个与时间戳相关的属性。您可以检索:

  • committedDate : 在本地创建提交的日期。当提交更改并受作者时钟影响时更新
  • authoredDate : 默认与 committedDate 相同, 可以用 --date 更改提交更改时的可选参数,也受作者时钟的影响
  • pushedDate :提交被推送到存储库的日期,根据服务器的时间(在本例中为 GitHub 的)

  • 综上所述,您似乎更愿意使用 pushedDate相反,因为这将给出提交到 repo 时的真实提交顺序。

    关于GitHub GraphQL 查询未返回上次提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56054038/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com