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