如何使用Powershell脚本在Git中为teamcity设置post-commit钩子?

时间:2017-10-17 07:31:14

标签: powershell teamcity-9.0

我正在尝试为Teamcity中的特定项目设置Git post-commit hook,以便在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.

有没有其他方法可以使用powershell脚本在Git中为teamcity配置提交后挂钩?

1 个答案:

答案 0 :(得分:1)

Project不是有效的定位器ID,因此您可能需要考虑更改正在卷曲的URL。

从TeamCity文档中,可接受的定位器如下:

  
      
  1. 类型:VCS根类型 - 指定版本控制的VCS根实例(例如" jetbrains.git"," mercurial"," svn")
  2.   
  3. vcsRoot :( vcsRootLocator) - 与" vcsRootLocator"
  4. 匹配的VCS根对应的VCS根实例   
  5. buildType:(buildTypeLocator) - 附加到匹配构建配置的VCS根实例
  6.   
  7. property :( name:name,value:value,matchType:matching) - 具有name" name"属性的VCS根实例。和值匹配条件" matchType" (例如,equals,contains)由值"值"。
  8.   

您可以通过构建api请求来查询项目ID,如下所示:

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)"