GitHub API V3:pushed_at和updated_at有什么区别?

37

查看 V3 API Repos (GET /repos/:owner/:repo)时,我们有 3 个日期时间:

  "pushed_at": "2011-01-26T19:06:43Z",
  "created_at": "2011-01-26T19:01:12Z",
  "updated_at": "2011-01-26T19:14:43Z",

为了快速示例,只需链接此https://api.github.com/repos/twitter/bootstrap

pushed_at和updated_at有什么区别?

1个回答

47
更新: 下面描述的行为并非预期。当提交推送到仓库的任一分支时,pushed_at 将被更新。 当更新仓库对象时(例如更新仓库描述或主要语言),updated_at 将更新。不需要每次推送都更新 updated_at 属性——只有在推送触发对存储库对象的更新时才会发生这种情况。例如,如果存储库的主要语言是Python,然后您推送了大量JavaScript代码,它可能会将主要语言更改为JavaScript,从而更新存储库对象的language属性,进而更新updated_at属性。以前,在每次推送时都会更新主要语言,即使它没有更改(这是不应该的),因此会触发对updated_at的更新。


pushed_at 表示最后一次提交的日期和时间,而updated_at 表示存储库上一次更改的日期和时间。对存储库的更改可能是提交,但也可能是其他事情,比如更改存储库的描述,创建维基页面等。换句话说,提交是更新的子集,因此pushed_at 时间戳将与 updated_at 时间戳相同,或者它将是一个更早的时间戳。


1
值得注意的是,这些值适用于整个代码库。如果作者更新了他们的“dev”分支,即使默认分支(通常为master)尚未推送,也会更新“updated_at”属性。 - braitsch
1
奇怪的是,我注意到即使有人在焦点存储库的任何分支上打开了pullrequestevent(甚至没有合并或关闭它),pushed_at标志也会更新。打开的拉取请求可以来自任何远程分叉。我不确定为什么会发生这种情况,因为根据我的理解,在这种特殊情况下没有对任何存储库的分支进行提交。 - Poonacha
我认为即使有人给存储库点赞,updated_at 也可能会被更新。至少我的研究结果是这样表明的。 - Tomáš Hübelbauer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接