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

2024-05-29 05:56:56 发布

您现在位置:Python中文网/ 问答频道 /正文

这些年来,我们在Rally创建并关闭了大量项目。因为您实际上不能完全删除项目,所以我发现需要重新打开关闭的项目,修改一些工件,然后重新关闭项目。一个简单的例子反映在下面的Python中:

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

因此,如果一个项目的“State”是“Closed”,那么将一个JSON对象发布到项目的API URL中,并将其设置为“Open”。在

它不起作用。我得到的答复是:

^{pr2}$

有没有其他方法可以通过Rally WS-API打开/关闭一个项目?在


Tags: 项目httpsprojectcomauthwebsessionservice
1条回答
网友
1楼 · 发布于 2024-05-29 05:56:56

可能有两个问题。在

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

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

a)从安全终结点获取安全令牌:

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

b)附加到请求的令牌:

终结点:

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

有效载荷:

^{pr2}$

这很管用。在

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

相关问题 更多 >

    热门问题