我希望GitLab组中的所有项目都能为webhook共享配置:
{{1}}
GitLab webhook documentation表明它应该是可能的:
如果您在一个组中有大量项目,那么您可以方便地为整个组配置全局Web挂钩。您可以在组设置页面上添加组级别Web挂钩。
虽然我在gitlab 7.0.0中的组设置页面上看不到这样的内容,但这听起来和我的完全一样。我无法确定此功能是否比changelog中的功能更新。
该功能是否存在?我该如何使用它?
答案 0 :(得分:4)
仅限企业版:
在 GitLab企业版中,您可以为整个组全局配置Web挂钩。您可以在组设置页面设置>上添加组级别Web挂钩。 Web Hooks。
答案 1 :(得分:0)
跟随@VertigoRay的评论,以下是使用GitLab CE API进行此操作的过程:
在GitLab中拥有或创建用户以及具有api
范围的个人访问令牌:
api
范围(复选框)执行HTTP请求以获取所有项目:
GET https://gitlab.example.com/api/v4/projects
Private-Token: <my_personal_token>
Accept: application/json
对于响应中的每个项目:
ssh://git@example.com:1234/group/alpha.git
成为ssh%3A%2F%2Fgit%40example.com%3A1234%2Fgroup%2Falpha.git
对于每个项目,执行一个HTTP请求以创建一个钩子:
POST https://gitlab.example.com/api/v4/projects/<project_ID>/hooks
Private-Token: <my_personal_token>
Content-Type: application/json
{
"url": "https://jenkins.example.com/git/notifyCommit?url=<encoded_ssh_url>",
"enable_ssl_verification": true
}
这应该用您选择的语言编写。
答案 2 :(得分:0)
不适合作为持久解决方案,但是这对于寻求一次性更改(来自raketasks documentation的人)可能有用:
Add a webhook for projects in a given NAMESPACE
# omnibus-gitlab
sudo gitlab-rake gitlab:web_hook:add URL="http://example.com/hook" NAMESPACE=acme
# source installations
bundle exec rake gitlab:web_hook:add URL="http://example.com/hook" NAMESPACE=acme RAILS_ENV=production