gpt4 book ai didi

python - 如何通过 REST API 更新 Rally 项目的状态?

转载 作者:太空宇宙 更新时间:2023-11-04 03:47:46 26 4
gpt4 key购买 nike

多年来,我们在 Rally 中创建和关闭了大量项目。因为您实际上不能完全删除项目,所以我发现需要重新打开已关闭的项目、修改一些工件并重新关闭项目。这段 Python 中反射(reflect)了我正在尝试做的事情的一个简单示例:

resp = session.get('https://rally1.rallydev.com/slm/webservice/v2.0/project/' + ObjectID, auth=HTTPBasicAuth(user, password))
state = resp.json()["Project"]["State"]
if state == "Closed":
info = { "State": "Open" }
resp = session.post('https://rally1.rallydev.com/slm/webservice/v2.0/project/' + ObjectID + '?key=' + token, auth=HTTPBasicAuth(user, password), data=json.dumps(info))
print resp.content

因此,如果项目的“状态”为“关闭”,则将 JSON 对象发布到项目的 API URL,将其设置为“打开”。

这是行不通的。我收到这样的回复:

{
"OperationResult": {
"Errors": [
"Cannot set attribute on a com.rallydev.webservice.json.JSONSingleProperty"
],
"Warnings": [],
"_rallyAPIMajor": "2",
"_rallyAPIMinor": "0"
}
}

还有其他方法可以通过 Rally WS API 打开/关闭项目吗?

最佳答案

可能有两个问题。

首先,几年前进行了性能优化,将查询限制为打开的项目。此时,获取已关闭项目列表的唯一方法是在 UI 中给定工作区的“项目”页面上。当我们查询项目时,WS API 只返回打开的项目。尝试不检查此条件 state == "Closed"

但是只要直接访问项目端点,就应该可以重新打开项目。我没有用 Python 尝试,而是使用浏览器 REST Client 我重新打开了一个项目,如下所示:

a) 从安全端点获取安全 token :

https://rally1.rallydev.com/slm/webservice/v2.0/security/authorize

b) 将 token 附加到请求中:

端点:

https://rally1.rallydev.com/slm/webservice/v2.0/project/14304671845?key=b2c8aa01-...

有效载荷:

{"Project":{
"State":"Open"
}}

这行得通。

第二,security token必须附加到发布请求,但这还不够。请确保您维护 session cookie,因为与浏览器 REST 客户端中浏览器自动维护 session 的场景不同,在您的场景中情况并非如此。参见 this StackOverflow post .

关于python - 如何通过 REST API 更新 Rally 项目的状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22843650/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com