来自 azure devops returns 404 的 teamcity 的服务挂钩 url
Service hook url for teamcity from azure devops returns 404
我想为 TeamCity 创建一个提交挂钩。为此,我在 azure devops 中创建了 Service Hook:
http://teamCityServer/app/rest/vcs-root-instances/commitHookNotification?locator=vcsRoot:(type:jetbrains.git,count:99999),property:(name:url,value:https%3A%2F%2FazureDevOpsServer%2FWeb%2FMy+Project+Name%2F_git%2FMyProjectName,matchType:contains,ignoreCase:true),count:99999
当我测试服务挂钩时出现错误 'Statuscode: 404'。
据我了解,问题在于项目中的空格。它是:
'https://azureDevOpsServer/Web/My 项目 Name/_git/MyProjectName'
我尝试了“+”和“%20”来创建 url-转义 link,但没有成功...
有什么想法吗?
这个对我有用:
http://teamCityServer/app/rest/vcs-root-instances/commitHookNotification?locator=vcsRoot:(type:jetbrains.git,count:99999),property:(name:url,value:https%3A%2F%2FazureDevOpsServer%2FWeb%2FMy%2520Project%2520Name%2F_git%2FMyProjectName,matchType:contains,ignoreCase:true),count:99999
希望这个小改动能节省一些人的时间
很高兴 Sasha 解决了这个问题。我来这里是为了解决此类问题。
建议在配置实际挂钩之前尝试从命令行执行以下命令:
curl --header "Authorization: Bearer $ACCESS_TOKEN" -X POST "$SERVER/app/rest/vcs-root-instances/commitHookNotification?locator=$LOCATOR"
如果提交挂钩正确匹配服务器上的 VCS 根目录,您应该会看到类似如下的输出:
Scheduled checking for changes for 1 VCS roots. (Server time: 20160719T192540.787+0300)
如果commit hook没有找到任何VCS root,会报错:
No VCS roots are found ...
出现此输出的可能原因:
- 指定的定位器不正确,它不匹配任何 VCS 根目录
服务器
- 指定的用户没有足够的权限进行至少一项
匹配的 VCS 根。
要检查实际匹配的根,请使用请求:
curl --header "Authorization: Bearer $ACCESS_TOKEN" -X POST "$SERVER/app/rest/vcs-root-instances?locator=$LOCATOR"
详情请参考此document。
我想为 TeamCity 创建一个提交挂钩。为此,我在 azure devops 中创建了 Service Hook:
http://teamCityServer/app/rest/vcs-root-instances/commitHookNotification?locator=vcsRoot:(type:jetbrains.git,count:99999),property:(name:url,value:https%3A%2F%2FazureDevOpsServer%2FWeb%2FMy+Project+Name%2F_git%2FMyProjectName,matchType:contains,ignoreCase:true),count:99999
当我测试服务挂钩时出现错误 'Statuscode: 404'。 据我了解,问题在于项目中的空格。它是:
'https://azureDevOpsServer/Web/My 项目 Name/_git/MyProjectName'
我尝试了“+”和“%20”来创建 url-转义 link,但没有成功...
有什么想法吗?
这个对我有用:
http://teamCityServer/app/rest/vcs-root-instances/commitHookNotification?locator=vcsRoot:(type:jetbrains.git,count:99999),property:(name:url,value:https%3A%2F%2FazureDevOpsServer%2FWeb%2FMy%2520Project%2520Name%2F_git%2FMyProjectName,matchType:contains,ignoreCase:true),count:99999
希望这个小改动能节省一些人的时间
很高兴 Sasha 解决了这个问题。我来这里是为了解决此类问题。
建议在配置实际挂钩之前尝试从命令行执行以下命令:
curl --header "Authorization: Bearer $ACCESS_TOKEN" -X POST "$SERVER/app/rest/vcs-root-instances/commitHookNotification?locator=$LOCATOR"
如果提交挂钩正确匹配服务器上的 VCS 根目录,您应该会看到类似如下的输出:
Scheduled checking for changes for 1 VCS roots. (Server time: 20160719T192540.787+0300)
如果commit hook没有找到任何VCS root,会报错:
No VCS roots are found ...
出现此输出的可能原因:
- 指定的定位器不正确,它不匹配任何 VCS 根目录 服务器
- 指定的用户没有足够的权限进行至少一项 匹配的 VCS 根。
要检查实际匹配的根,请使用请求:
curl --header "Authorization: Bearer $ACCESS_TOKEN" -X POST "$SERVER/app/rest/vcs-root-instances?locator=$LOCATOR"
详情请参考此document。