有什么方法可以获取GitHub存储库中每个文件的最新提交日期和时间?

时间:2018-06-21 20:01:23

标签: php git api github

我正在尝试构建一个工具,使我可以将(私有)GitHub存储库中的文件与Web服务器上的文件进行比较。

我已经弄清楚了如何查询GH API的v3以获取回购中所有文件的列表。类似于以下内容:

https://api.github.com/repos/username/repo-name/git/trees/sha?recursive=1

usernamerepo-namesha都是我所知道的变量。这很好。但是,我需要能够获取仓库中每个文件的最新更新/修改的时间戳,以便可以将其与Web服务器上关联文件的最新更新/修改的时间戳进行比较,并知道文件在哪里。回购的master分支比服务器上的文件新。

有没有办法做到这一点?我已经仔细阅读了GH API文档,但找不到任何方法来获取存储库中文件的最新更新/修改时间戳。

我想我可以获取每个GH提交的时间戳,并查看提交中包含哪些文件,但是对于很长时间未更改/提交的文件,我将不得不进行过多的提交获取时间戳,这似乎不合理。

非常感谢您的帮助/指导。

1 个答案:

答案 0 :(得分:1)

我认为最好在Web服务器上计算源文件的哈希值,并比较哈希值而不是时间戳。

您可以像这样获取源文件的git-hash:

git hash-object foo.php

如果您没有在Web服务器上安装git,则可以使用纯bash:

printf "blob $(wc -c < foo.php)\0$(cat foo.php)\n" | sha1sum