Как настроить ловушку 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 допустимы следующие локаторы:

  1. тип: корневой тип VCS - корневые экземпляры VCS указанного контроля версий (например, "jetbrains.git", "mercurial", "svn")
  2. vcsRoot:(vcsRootLocator) - корневые экземпляры VCS, соответствующие корню VCS, сопоставленные с "vcsRootLocator"
  3. buildType: (buildTypeLocator) - корневые экземпляры VCS, присоединенные к соответствующей конфигурации сборки
  4. свойство: (имя: имя, значение: значение, 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)"
Другие вопросы по тегам