推送到 gitlab 存储库后更新服务器目录


Update server dir after pushing to gitlab repo

我们有以下设置 - 带有 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 原始数据可用于更复杂的解决方案,这非常好。