Concourse:使用HTTP请求触发作业

时间:2017-01-24 09:00:58

标签: git continuous-integration concourse

我正在尝试使用我的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

我做错了什么?有人能指出我正确的终点吗?

2 个答案:

答案 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

现在正在触发工作。