3

我正在尝试在我的 Git 服务器上使用 Web 挂钩触发 Concourse 作业。在 Github 上的这个问题之后,我找到了一个端点定义。所以我尝试了

curl http://10.20.30.101:8080/api/v1/pipelines/helloworld/resources/resource-tutorial/check -X POST

wherehelloworld是我的管道resource-tutorial的名称,并且是我要触发检查的资源的名称。

但是大堂回来了

404 page not found

我究竟做错了什么?有人可以指出我正确的端点吗?

4

2 回答 2

5

现在有资源的网络挂钩令牌: 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

于 2017-06-03T00:07:33.807 回答
4

经过一番调查并在非常支持的concourse slack channel的帮助下,我想出了以下解决方案(它不允许通过 HTTP GET 请求触发工作,但这是一个好的开始)。

首先按照文档中的描述创建一个新团队(选择基本的身份验证解决方案):

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 TOKENas 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

现在正在触发作业。

于 2017-01-26T22:13:24.337 回答