Зал: запуск задания с помощью HTTP-запроса

Я пытаюсь запустить задание Concourse с помощью веб-хука на моем сервере Git. После этой ошибки на Github я нашел определение конечной точки. Так что я попытался

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

где helloworld — это имя моего конвейера, а resource-tutorial — это имя ресурса, для которого я хочу запустить проверку.

Но Конкорс возвращается

404 page not found

Что я делаю не так? Может ли кто-нибудь указать мне правильную конечную точку?


person Michael Lihs    schedule 24.01.2017    source источник
comment
кажется, появилась новая конечная точка: github.com/concourse/atc/ blob/master/routes.go#L126   -  person Michael Lihs    schedule 25.01.2017


Ответы (2)


На данный момент для ресурса есть токен веб-хука: 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

person Alex Bender    schedule 03.06.2017

После некоторого расследования и с помощью очень поддерживающего неактивного канала зала я нашел следующее решение (которое не не позволяет инициировать задание через запрос 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 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

Сейчас работа активируется.

person Michael Lihs    schedule 26.01.2017
comment
Это сработало для вас? Я не могу отправить почтовый запрос для запуска конвейера. это мой код - person Vidya; 10.06.2017
comment
import request cookie = {'ATC-Authorization': 'Bearer eyJhbG3hVo1KXsg2Ce6-xlew'} r = request.post('192.168.100.4:8080/api/v1/teams/main/pipelines/mm/jobs/' , cookies=cookie) dir (r) напечатать r.text - person Vidya; 10.06.2017
comment
4.0.0, кажется, поставляется с новой системой входа в систему. Что сработало для меня, так это curl -v 'http://localhost:8080/api/v1/teams/main/builds' -H 'Authorization: Bearer VERY LONG TOKEN с токеном, извлеченным из ~/.flyrc (до этого я вошел в систему через fly). - person cburgmer; 28.10.2018