Задать вопрос
  • Teamcity - как выгрузить список проектов в txt\excel?

    @i2r
    С помощью RestAPI.
    Объявляем переменные:
    TEAMCITY_TOKEN="token_можно_сгенерировать_в_teamcity_в_профиле_пользователя"
    TEAMCITY_URL="http://IP:8111"

    Получить ID проектов:
    curl -s -H "Authorization: Bearer ${TEAMCITY_TOKEN}"  -H "Content-Type: text/plain"  -X GET  ${TEAMCITY_URL}/app/rest/projects/   | grep -Po '(?<=project id=")[\w]*'  | sort -u > projects_ids.txt

    Получить наименования (в т.ч. в kebab-case) проектов:
    curl -s  -H "Authorization: Bearer ${TEAMCITY_TOKEN}"  -H "Content-Type: text/plain"  -X GET  ${TEAMCITY_URL}/app/rest/projects/   | grep -Po '(?<=name=")[\w.|-]*'  | sort -u > projects_names.txt

    Получить описания проектов:
    curl -s  -H "Authorization: Bearer ${TEAMCITY_TOKEN}"  -H "Content-Type: text/plain"  -X GET  ${TEAMCITY_URL}/app/rest/projects/   | grep -Po '(?<=description=")[\w.|-]*'  | sort -u  > projects_descriptions.txt


    Получить ссылки на репозиторий:
    Для начала, необходимо получить список ID всех Vcs_Roots:
    curl -s  -H "Authorization: Bearer ${TEAMCITY_TOKEN}"  -H "Content-Type: text/plain"  -X GET  ${TEAMCITY_URL}/app/rest/vcs-roots?locator=count:1000   | grep -Po '(?<=id=")[\w.]*'  | sort -u  > vcs_ids.txt

    Далее, циклом получаем  ссылки на репозиторий из каждой строки полученного выше файла:
    for i in $(cat vcs_ids.txt) ; do curl -s -H "Authorization: Bearer ${TEAMCITY_TOKEN}" -H "Content-Type: text/plain" -X GET ${TEAMCITY_URL}/app/rest/vcs-roots/id:$i/properties/url >> vcs_urls.txt &&  echo >> vcs_urls.txt  ; done


    P.S. Если у вас другая политика именования проектов, то можете подкорректировать использованные в примере регулярные выражения - под ваши реалии.
    Ответ написан
    Комментировать