我正在尝试使用我的Git服务器上的Web挂钩触发Concourse作业。在issue on Github之后,我找到了endpoint definition。所以我试过
curl http://10.20.30.101:8080/api/v1/pipelines/helloworld/resources/resource-tutorial/check -X POST
其中helloworld
是我的管道的名称,resource-tutorial
是我想要触发检查的资源的名称。
但是Concourse回归
404 page not found
我做错了什么?有人能指出我正确的终点吗?
答案 0 :(得分:4)
现在有资源的Web钩子令牌: https://concourse-ci.org/configuring-resources.html#webhook_token
/api/v1/teams/TEAM_NAME/pipelines/PIPELINE_NAME/resources/RESOURCE_NAME/check/webhook?webhook_token=WEBHOOK_TOKEN
您可以在此处添加网络摘要:
https://github.com/<username>/<repo>/settings/hooks/new
答案 1 :(得分:2)
经过一些调查并在非常支持concourse slack channel的帮助下,我找到了以下解决方案(它不允许通过HTTP GET请求触发作业,但这是一个良好的开端)。
首先创建一个新团队described in the documentation(转到基本身份验证解决方案):
fly set-team -n my-team \
--basic-auth-username ci \
--basic-auth-password changeme
现在生成一个身份验证令牌:
curl -u foo:bar http://<CONCOURSE HOSTNAME>:<CONCOURSE PORT>/api/v1/teams/my-team/auth/token
{"type":"Bearer","value":"... VERY LONG TOKEN..."}
现在,您可以使用VERY LONG TOKEN
作为Cookie来触发构建:
curl -v --cookie "ATC-Authorization=Bearer VERY LONG TOKEN" \
http://<CONCOURSE HOSTNAME>:<CONCOURSE PORT>/api/v1/teams/my-team/pipelines/<PIPELINE NAME>/jobs/<JOB NAME>/builds -X POST
现在正在触发工作。