【发布时间】:2018-12-01 06:20:51
【问题描述】:
我正在尝试构建一个工具,允许我将(私有)GitHub 存储库中的文件与 Web 服务器上的文件进行比较。
我已经弄清楚如何查询 GH API 的 v3 以获取 repo 中所有文件的列表。类似于以下内容:
https://api.github.com/repos/username/repo-name/git/trees/sha?recursive=1
其中username、repo-name 和sha 都是我知道的变量。这工作正常。但是,我需要能够获取存储库中每个文件的最后更新/修改时间戳,以便我可以将其与 Web 服务器上关联文件的最后更新/修改时间戳进行比较,并知道文件在repo 的 master 分支比服务器上的文件更新。
有没有办法做到这一点?我已经彻底查看了 GH API 文档,但找不到任何方法来获取 repo 中文件的最后更新/修改时间戳。
我想我可以得到每个 GH 提交的时间戳并查看提交中有哪些文件,但是对于长时间没有更改/提交的文件,我将不得不经历太多的提交获取时间戳,这似乎不太合理。
非常感谢任何帮助/指导。
【问题讨论】:
-
使用 API 很难做到,因为您需要扫描所有提交并列出每个提交中的文件。如果您可以使用本地存储库,我可以为您指出 2 个脚本。第一个在GitWiki;用 Perl 编写;应该以这种方式工作——扫描提交并获取文件的时间戳。我在运行它时遇到了问题,所以我用 Python 重写了它;在我的git-scripts repo 中查看脚本
set-commit-date.py。 -
感谢您的参考。虽然不太熟悉 Perl,但不确定如何使用您链接到的 Python 存储库。不过,资源很好。谢谢。
-
Direct link to the script。我必须承认我也不是 Perl 程序员,这也是我用我喜欢的语言重写脚本的原因之一。
-
啊,我明白了。它解析 git 日志以确定要做什么。也很聪明。谢谢。