能获取到项目中,最后更新(增加/修改)过的文件吗?

2022-04-04 21:12:38 +08:00
 acbot

使用 GitHub REST API 或 其他 shell 脚本(无 git 环境),有没有办法能获取到 GitHub 项目中,最后更新(增加 /修改)过的文件。 目前查看了一下官方文档 https://api.github.com/repos/{owner}/{repo}/commits?path= 这个 API 只能查询某个文件最后提交时间,另外一个 API 也仅仅是能查看整个项目最后的提交的时间,都不能满足需求。

1232 次点击
所在节点    GitHub
7 条回复
Puteulanus
2022-04-05 00:02:45 +08:00
commits 输出的第一个 commit 的 url ,get 访问返回的结果里不是有一个 files 吗
FranzKafka95
2022-04-05 00:11:14 +08:00
不是很理解,相当于你要获取远程项目的最后更改的文件是吧,这个如果没有官方 API 支持是不大可能得,不过 shell 里面是可以通过 stat 命令查看文件 modified 的时间的,如果能把文件放到本地,for 循环处理,应该可以,或者考虑一下利用 actions 帮你做这个事情?
acbot
2022-04-05 11:46:07 +08:00
@Puteulanus 没太明白,另外整个项目是第三方的,我这边只是浏览而已。
acbot
2022-04-05 11:48:09 +08:00
@FranzKafka95 原因就是这个项目太大了,所以我仅仅是想获取最后更新过的文件。当然这个在 git 环境中比较好办。
Puteulanus
2022-04-05 13:58:51 +08:00
@FranzKafka95 github 项目最新修改的文件,不就是最后一个 commit 包含的变动文件吗

比如
https://api.github.com/repos/pi-hole/pi-hole/commits
第一个 commit 的 url 为
https://api.github.com/repos/pi-hole/pi-hole/commits/326cd6a1f845b3f2654e0bde9591d08d0f87e010
JSON 里的 files 包含两个 file
"advanced/Templates/pihole-FTL.service"
"automated install/basic-install.sh"

和它网页上最后一个 commit 的 changed file 一致
https://github.com/pi-hole/pi-hole/commit/326cd6a1f845b3f2654e0bde9591d08d0f87e010
Puteulanus
2022-04-05 14:12:05 +08:00
监控第三方库还有些快乐的小技巧
比如 watch 目标库,收件箱收信规则转发去 mailgun 的域名邮箱
mailgun 那边 receiving routes 设置 webhoook 发往 google app script
google app script 那边用代码就能随便调自己用的服务的 API 了,比如触发 docker 构建

这样就能获得一个第三方库的 webhook ,不用自己去轮询了
acbot
2022-04-05 14:58:10 +08:00
@Puteulanus 谢谢,之前没有看到 "files": [...]

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/844941

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX