Custom post-receive hook with gitlab
我正在尝试使用gitlab设置自定义接收后挂钩
我在跟踪他们的文件在这里
我在自定义挂钩文件夹中有一个可执行的接收后文件,代码如下:
1 2 3 | !/bin/bash echo"post-receive firing | wall git pull |
如果运行此文件时使用:
1 | ./post-receive |
号
它工作得很好。当对gitlab repo进行推送时,它似乎根本不会开火。
这是我第一次尝试任何类型的网络钩子,所以我有点迷路了。
a)我在远程Web服务器上的.git/custom_hooks文件夹中有上述脚本,对吗?
b)我需要在回购协议中做什么吗?
c)在文档中,它指定我应该设置文件的权限,以便"git"用户拥有该文件。我在网络服务器上没有git用户…所有其他与Git相关的文件都归我的用户或根用户所有。
所以假设我在这里做了一些完全错误的事情,有人能帮我摆脱痛苦吗?当我从本地机器推到Gitlab时,有人能给我一个自动推到Web服务器的明智方法吗?我觉得我已经花了一些时间寻找一种方法来实现这一点,而且解决方案似乎是完全多余的(cronjob每隔几秒钟运行一次…)或者像上面所说的,似乎不起作用。或者至少我看起来不能让他们工作。
当然这是一个简单的任务…
on the file so it is owned by the 'git' user. I have no git user on the webserver... all other git related files are owned by my user or root.
号
这是因为Oyur Web服务器是Gitlab服务器的客户端。您参考的文档用于配置Gitlab服务器(向Gitlab repo添加后接收挂钩)。因此,"EDOCX1"(0)用户是Gitlab服务器上的默认用户。
但是,如果您要推到gitlab.com,就不能直接添加钩子。
您需要声明一个Web钩子,然后它将发送一个JSON消息,您可以监听该消息以触发另一个操作。
如果你是唯一可以推的人,你可以简单地推多个回购。这里不涉及钩子,客户机或服务器。但这将是一个仅对本地克隆的repo有效的本地设置。
请遵循以下步骤
需要"net/http"需要"uri"uri=uri.parse("您的URL")response=net::http.get响应(uri)
希望,这对你有帮助