多年來,我們在拉力賽中創建並關閉了大量項目。因爲你不能完全刪除項目,所以我發現需要重新打開已關閉的項目,修改一些工件並重新關閉項目。什麼,我試圖做一個簡單的例子體現在該位的Python:如何通過REST API更新Rally Project的狀態?
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
所以,如果一個項目的「國家」是「關閉」,POST JSON對象的項目設置的API網址它「打開」。
它不起作用。我得到這個迴應:
{
"OperationResult": {
"Errors": [
"Cannot set attribute on a com.rallydev.webservice.json.JSONSingleProperty"
],
"Warnings": [],
"_rallyAPIMajor": "2",
"_rallyAPIMinor": "0"
}
}
是否有另一種方式通過Rally WS API打開/關閉項目?
pyral方法「rally.getProjects()」事實上會返回已關閉的項目,所以至少這不是問題。而對於這個問題的測試,我只是讓POST有效載荷出錯了:將它包裝在上面顯示的「Project」對象中工作完美。謝謝! –