Извините за краткий вопрос, но просто интересно, есть ли API для определения количества конвейеров на сервере GoCD.
Есть ли простой способ/API узнать количество конвейеров на сервере gocd?
Ответы (5)
API Pipeline Groups даст вам то, что вам нужно после парсинга JSON.
$ curl 'https://ci.example.com/go/api/config/pipeline_groups' \
-u 'username:password'
Возвращает:
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
[
{
"pipelines": [
{
"stages": [
{
"name": "up42_stage"
}
],
"name": "up42",
"materials": [
{
"description": "URL: https://github.com/gocd/gocd, Branch: master",
"fingerprint": "2d05446cd52a998fe3afd840fc2c46b7c7e421051f0209c7f619c95bedc28b88",
"type": "Git"
}
],
"label": "${COUNT}"
}
],
"name": "first"
}
]
Вы можете взять файл config.xml и проанализировать его. из репозитория конфигурации или через http.
В качестве альтернативы вы можете просто получить файл cctray со своего сервера по адресу http://yourgoserver/go/cctray.xml и проанализируйте его.
Содержит информацию обо всех пайплайнах (включая его этапы)
Я бы рекомендовал использовать yagocd:
from yagocd import Yagocd
go = Yagocd(server='https://build.gocd.io')
# login as guest
go._session.get('https://build.gocd.io/go/plugin/interact/gocd.guest.user.auth.plugin/index')
print(len(list(go.pipelines)))
Да, конечно. Получить желаемый результат можно разными способами. Первый простой способ получить количество конвейеров и другую статистическую информацию по URL-адресу службы поддержки GoCD (https://example.com/go/api/support), для которого требуются права администратора.
Если у пользователя нет прав администратора, нам нужно использовать GoCD pipeline_groups
API. Приведенная ниже команда должна дать вам точный результат с jq
(обработчиком JSON)
$ curl 'https://example.com/go/api/config/pipeline_groups' -u 'username:password' | jq -r '.[] | .pipelines[].name' | wc -l
ПРИМЕЧАНИЕ. Тем не менее пользователи Go Administrator могут получить фактическое количество конвейеров.