【发布时间】:2020-02-28 19:19:25
【问题描述】:
我正在使用 node.js 编写服务,根据我的 gitlab 项目中的文件是否最近更新,服务的工作方式会发生变化。那么如何判断我的 gitlab 项目中的文件内容是否在 node.js 服务端发生了变化?是否有为此提供 Gitlab API 服务?
【问题讨论】:
标签: javascript node.js gitlab microservices gitlab-api
我正在使用 node.js 编写服务,根据我的 gitlab 项目中的文件是否最近更新,服务的工作方式会发生变化。那么如何判断我的 gitlab 项目中的文件内容是否在 node.js 服务端发生了变化?是否有为此提供 Gitlab API 服务?
【问题讨论】:
标签: javascript node.js gitlab microservices gitlab-api
Gitlab 确实提供了强大的 API,但你能不能只运行 git fetch 和 diff:
git fetch origin master
git diff origin/master:./ --compact-summary
这将列出与您的本地相比已更改的所有文件。如果你想从 Node 访问它,你可以把它放在一个 shell 脚本中,将它作为一个衍生的 child_process 运行并解析标准输出。
此方法取决于您的服务手动检查更改,如果您希望在任何时候发生更改时提醒您的服务,您可能需要查看 webhook:https://docs.gitlab.com/ee/user/project/integrations/webhooks.html
【讨论】:
您可以监视(使用 crontab)project's commits 或 webhooks(如 @Dave 所说),然后使用 gitlab commit api 获取提交差异信息以查看您的文件是否被修改
【讨论】: