我们有以下设置 - 使用gitlab gui的远程存储库。
我们的网络服务器位于另一台服务器上,我们可以通过ssh访问它。我们还有我们的开发站点的本地副本,我们的git设置现在只需在gitlab中推送到repo。
我的目标是自动完成流程,并在每次推送gitlab repo时使用最新更改来更新服务器目录。
我看到为此我们应该使用webhooks或部署密钥。我想避免使用cron作业。
我创建了一个bash脚本,在访问某个php文件后执行git pull 但是当我在gitlab的webhook部分中将url放到这个php文件时,没有任何反应。
如果我通过在地址栏中键入url来手动访问该文件,则可以正常工作 当我尝试测试钩子时,我得到500错误并超时。
有关如何改进此流程或出错的任何建议?
答案 0 :(得分:0)
webhook不仅向提供的URL发送get请求,还将其数据作为JSON发送到原始数据中。
你的脚本可以处理吗? 看看 gitlab-webhook-push.php
答案 1 :(得分:0)
实际问题是gitlab无法访问我们的域并导致超时,当然sys管理员决定在不通知的情况下限制来自外部源的访问。另外值得一提的是,JSON原始数据可以用于更复杂的解决方案,这非常好。