我正在使用git flow和teamcity作为我的CI服务器.我想从特定分支上的最新成功构建中提取工件.
我可以使用这个url来获取分支上的最新版本: http://$teamcity$/httpAuth/app/rest/buildTypes/name:$BuildTypeName$/builds/branch:name:$branchName$
但如果分支名称包含/(例如,git flow names branches feature/%和release/%),则失败.
我已经尝试过url编码了/.例如,如果$branchName$> == 'release/branchName'我使用/builds/branch:name:release%2F$branchName$).
/builds/branch:name:develop/builds/branch:name:release%2F$branchName$.我没有得到API错误,但api结果为空.
您可以通过将构建定位器放入查询字符串而不是URL的路径元素的一部分来解决这个问题,即/builds/branch:name:release%2F1.0.1您可以这样做,而不是等等/builds?locator=branch:name:release%2F1.0.1.返回的数据格式似乎并不相同,但它确实包含内部构建ID,因此您始终可以使用该ID对该确切构建发出第二个请求,例如/builds/id:3332.
另一点,我没有亲自尝试过,可以在JetBrains的问题跟踪器的评论中找到:
我深入研究了一下,发现Tomcat版本6.0.10和更新版本默认不再接受路径元素中的编码斜杠和反斜杠.可以通过更改两个Tomcat服务器属性(在http://tomcat.apache.org/security-6.html#Fixed_in_Apache_Tomcat_6.0.10上找到)来更改此行为:
Run Code Online (Sandbox Code Playgroud)-Dorg.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true -Dorg.apache.catalina.connector.CoyoteAdapter.ALLOW_BACKSLASH=true
我不知道这是否被认为是一种糟糕的安全措施.
| 归档时间: |
|
| 查看次数: |
4142 次 |
| 最近记录: |