在 Gitlab 中用于分支的 Webhooks
Webhooks for branching in Gitlab
有没有办法在 Git/Gitlab 中更新分支时触发 Webhook?
我正在尝试设置开发工作流程。最初的想法是为每个编码阶段都有一个存储库 - 例如:一个用于开发的存储库,一个用于测试的存储库,一个用于生产的存储库。
问题是,一旦 Master 分支发生变化,我需要采取行动。例如更新了Development仓库,Development代码为"cloned",会生成一个.exe文件,然后将文件放入"Development"目录下进行测试。
理想情况下,一旦开发顺利,您就可以 "promote" 将代码 "testing"。如果 "testing" 顺利,则将代码提升为 "production".
问题是无法在存储库之间 "promote" 编码。唯一可用的是能够将较低的分支与较高的分支合并。
我看到的所有示例都涉及开发分支、测试分支和 "production" 分支实际上是存储库的主分支。
好的 - 我可以接受;但是,在这种情况下,我需要根据开发分支编译开发代码,根据测试分支编译测试代码等
为此,需要触发 Webhook,以便采取适当的操作来完成上述任务(这就是问我问题的原因)。
那么 - 再一次 - 当存储库中的特定 ~branch~ 发生变化时,如何让 Webhook 触发?
how can one get a Webhook to fire when a particular ~branch~ changes in the repository?
看起来像 issues 1176
If you look at the posted data, you have
:ref => "refs/heads/master",
Webhooks works sending a POST request to a script, with a payload describing the push.
不过你需要一个监听那个 webhook 的服务。
如果您使用 Jenkins 服务器,您可以 a Jenkins GitLab plugin "branch filtering" 为您的 webhook 指向。
构建触发器 --> 将更改推送到 GitLab 时构建。 --> Advanced --> Allowed branches --> Filter branches by name --> 在 include 框中写下你想触发构建作业的分支名(请注意,写的分支名不带 */ )
我注意到,即使您输入了正确的分支名称,它仍然会抛出消息 "Following patterns don't match any branch in source repository: " 您可以忽略它并测试您的 webhook。它对我有用。
可能有点晚了,但对于那些仍在寻找解决方案的人来说,你可以去。
2 个分支机构(生产)和开发
1 或 2 个网络服务器,无关紧要。
在集成下的 gitlab 中,为每个分支设置 2 个带有过滤器的 webhook,一个转到 prod URL,另一个转到 dev URL。
我在特定地址 (dir) o 那些服务器 url 端使用脚本来结帐到正确的分支并拉取更改。
因此 url 将是这样的 https://devurl.example.com/dir/deployment.php
以脚本结尾,我正在调用此命令,例如'git pull origin master or development'
简单但完美。
有帮助的箍
我和 Jenkins 有同样的问题。我只想为有更改的分支触发构建。在 gitlab 文档中我没有找到关于分支过滤的解释..
在我的例子中,如果您在推送触发器的字段中添加 master,它就可以完成工作。
有没有办法在 Git/Gitlab 中更新分支时触发 Webhook?
我正在尝试设置开发工作流程。最初的想法是为每个编码阶段都有一个存储库 - 例如:一个用于开发的存储库,一个用于测试的存储库,一个用于生产的存储库。
问题是,一旦 Master 分支发生变化,我需要采取行动。例如更新了Development仓库,Development代码为"cloned",会生成一个.exe文件,然后将文件放入"Development"目录下进行测试。
理想情况下,一旦开发顺利,您就可以 "promote" 将代码 "testing"。如果 "testing" 顺利,则将代码提升为 "production".
问题是无法在存储库之间 "promote" 编码。唯一可用的是能够将较低的分支与较高的分支合并。
我看到的所有示例都涉及开发分支、测试分支和 "production" 分支实际上是存储库的主分支。
好的 - 我可以接受;但是,在这种情况下,我需要根据开发分支编译开发代码,根据测试分支编译测试代码等
为此,需要触发 Webhook,以便采取适当的操作来完成上述任务(这就是问我问题的原因)。
那么 - 再一次 - 当存储库中的特定 ~branch~ 发生变化时,如何让 Webhook 触发?
how can one get a Webhook to fire when a particular ~branch~ changes in the repository?
看起来像 issues 1176
If you look at the posted data, you have
:ref => "refs/heads/master",
Webhooks works sending a POST request to a script, with a payload describing the push.
不过你需要一个监听那个 webhook 的服务。
如果您使用 Jenkins 服务器,您可以 a Jenkins GitLab plugin "branch filtering" 为您的 webhook 指向。
构建触发器 --> 将更改推送到 GitLab 时构建。 --> Advanced --> Allowed branches --> Filter branches by name --> 在 include 框中写下你想触发构建作业的分支名(请注意,写的分支名不带 */ )
我注意到,即使您输入了正确的分支名称,它仍然会抛出消息 "Following patterns don't match any branch in source repository: " 您可以忽略它并测试您的 webhook。它对我有用。
可能有点晚了,但对于那些仍在寻找解决方案的人来说,你可以去。 2 个分支机构(生产)和开发 1 或 2 个网络服务器,无关紧要。 在集成下的 gitlab 中,为每个分支设置 2 个带有过滤器的 webhook,一个转到 prod URL,另一个转到 dev URL。 我在特定地址 (dir) o 那些服务器 url 端使用脚本来结帐到正确的分支并拉取更改。 因此 url 将是这样的 https://devurl.example.com/dir/deployment.php 以脚本结尾,我正在调用此命令,例如'git pull origin master or development'
简单但完美。 有帮助的箍
我和 Jenkins 有同样的问题。我只想为有更改的分支触发构建。在 gitlab 文档中我没有找到关于分支过滤的解释..
在我的例子中,如果您在推送触发器的字段中添加 master,它就可以完成工作。