Перейти до вмісту

TeamCity

Читає версію з GET /app/rest/server — точки входу, на яку насамперед вказує власний довідник REST API TeamCity.

targets:
- id: teamcity-main
product: teamcity
address: https://teamcity.example.com
credentials: teamcity-pat

Автентифікація — обовʼязкова, і тут легко все переплутати

Section titled “Автентифікація — обовʼязкова, і тут легко все переплутати”

Анонімного доступу за замовчуванням немає — свіжий екземпляр відповідає 401 з викликами і Basic, і Bearer (гостьовий вхід за замовчуванням вимкнено). TeamCity має два різні види токенів, підтверджено наживо, які працюють лише як протилежні види облікових даних:

  • Одноразовий bootstrap-токен суперкористувача, який свіжий сервер виводить у лог під час першого запуску, працює лише як Basic — порожнє імʼя користувача, токен як пароль. Надісланий як простий Authorization: Bearer, він відхиляється.
  • Персональний токен доступу звичайного користувача (Profile → Access Tokens — саме так автентифікується справжня довготривала автоматизація) — навпаки: перевірено на семи реальних продакшн-екземплярах, він працює як Bearer і безумовно відхиляється як Basic («Incorrect username or password», навіть із порожнім імʼям користувача).
credentials:
# bootstrap-токен — Basic, порожнє імʼя користувача
teamcity-bootstrap:
kind: basic
username: ""
password: "${TEAMCITY_BOOTSTRAP_TOKEN}"
# персональний токен доступу — Bearer
teamcity-pat:
kind: bearer
value: "${TEAMCITY_TOKEN}"

У будь-якій довготривалій конфігурації використовуйте персональний токен доступу — bootstrap-токен призначений для заміни після першого входу.

  • version — повний рядок, напр. 2026.2 (build 238924)
  • extra.buildNumber, extra.internalId

Зіставляється з NVD і БДУ ФСТЕК, якщо налаштовано блок cve:.

Резолвер життєвого циклу

Section titled “Резолвер життєвого циклу”

Немає — endoflife.date не має календаря TeamCity (підтверджено 404). Поки що лише для інвентаризації.