Как настроить ловушку post-commit для teamcity в Git, используя скрипт Powershell?
Я пытаюсь настроить Git post-commit hook для определенного проекта в Teamcity, чтобы запускать сборки, если в репозитории BitBucket есть изменения.
Я пытаюсь использовать следующий скрипт powershell:
curl --user username:password -X POST "http://teamcity.org.com/app/rest/vcs-root-instances/commitHookNotification?locator=project:(id:project_id)"
Это дает мне следующую ошибку:
No VCS roots are found for locator 'project:(id:project_id)' with current user 'teamcityuser' (TeamCityUser) {id=1672}. Check
locator and permissions using '/app/rest/vcs-root-instances?locator=$help' URL.
Есть ли другой способ настроить перехват фиксации в Git для teamcity, используя скрипт powershell?
1 ответ
Решение
Project не является действительным идентификатором локатора, поэтому вам может потребоваться изменить URL-адрес, который вы используете.
Из документации TeamCity допустимы следующие локаторы:
- тип: корневой тип VCS - корневые экземпляры VCS указанного контроля версий (например, "jetbrains.git", "mercurial", "svn")
- vcsRoot:(vcsRootLocator) - корневые экземпляры VCS, соответствующие корню VCS, сопоставленные с "vcsRootLocator"
- buildType: (buildTypeLocator) - корневые экземпляры VCS, присоединенные к соответствующей конфигурации сборки
- свойство: (имя: имя, значение: значение, matchType: соответствие) - корневые экземпляры VCS со свойством имени "name" и условием сопоставления значения "matchType" (например, equals, содержит) значением "value".
Вы можете избежать структурирования вашего API-запроса для запроса идентификатора проекта следующим образом:
curl --user username:password -X POST "http://teamcity.org.com/app/rest/vcs-root-instances/commitHookNotification?locator=property:(name:project,id:project_id,matchtype:contains)"