Concourse Webhook 到 Git

use*_*699 2 concourse concourse-git-resource

环境:

BitBucket
Concourse 3.14.0
Run Code Online (Sandbox Code Playgroud)

想知道是否可以使用 Git webhook 配置 Concourse 管道,该管道将检查是否发生了新提交,并且会根据该触发器触发管道构建?我查看了https://concourse-ci.org/resources.html#resource-webhook-token,但它没有告诉我如何从 Concourse 获取 webhook 令牌以及它是否支持我所要求的内容。
非常感谢任何反馈。

小智 5

大厅资源通常每分钟左右就会拉出任何新版本。当这个频率不满足您的需要时,您可以使用资源属性对其check_every进行修改。但低于1m(一分钟)的值通常被认为是激进的。Github 对 API 调用实施配额,当您有许多管道时,您不希望它们因达到某些配额限制而失败。

\n

如果您希望 Concourse立即对已发布的管道资源新版本做出反应,则需要反转该模式。您不再需要 Concourse 以某个定义的频率拉取任何新版本,而是开始将要拉取某些新版本的信息推送到 Concourse。这种反向的 \xe2\x80\x9cpush\xe2\x80\x9d 模式涉及每当在资源上创建新版本时触发 \xe2\x80\x9cresource 检查\xe2\x80\x9d。

\n

触发立即资源检查

\n

每个 Concourse 资源都可以使用资源webhook_token属性启用资源检查触发 URL 。此 URLwebhook_token在其查询字符串中包含机密,并且应该仅接收POSTHTTP 请求。

\n

借助 Github 存储库,您可以通过Github 工作流程POST访问此 URL ,依赖于市场中的标准 Github 操作(推荐,首选)或Github Webhook(第二选择)。

\n

使用 Github 工作流程

\n

您需要在 Github 存储库的文件夹中提交并推送 YAML 文件.github/workflows,以便定义您的工作流程。有关详细示例,请参阅\xe2\x80\x9cTrigger Concourse 资源检查\xe2\x80\x9d 操作的文档。这非常简单,因为只需要配置五个简单的输入。

\n

使用 Github Webhook

\n

使用此替代方案,您可以在存储库中手动设置 Github Webhook。URL 取决于要触发立即检查的资源,因此您无法在 Github 组织级别设置它。该webhook_token机密以明文形式附加到为 Webhook 设置的 URL,并且无法存储为 Github 机密。Github webhook 不支持获取任何 Github 秘密。

\n

如果您厌倦了手动设置 Webhooks,可以使用该github-webhook资源进行自动设置。webhook_token借助Credhub 资源,您甚至可以在 Credhub 中的密钥发生变化时触发 Webhook 重新创建。我已经完成了一些实现这个想法的工作代码,请参阅那些示例作业那些示例资源定义

\n

但我绝对建议使用 Github 工作流程和\xe2\x80\x9cTrigger Concourse 资源检查\xe2\x80\x9d 操作作为首选。

\n