ReviewBoard 沒有提供批次刪掉的介面, 測試期間產生一堆 request, 懶得用手一個個刪, 想說用 API 來刪。
使用 ReviewBoard 的 web api, 需要在連線中的 http header 加上 cookie 資訊用作身份認證。用 python 的 httplib2 做這事也不會太麻煩, 不過若能用 command line 解決, 會更簡單一些。後來我用 curl 做這事, 順便熟悉一下它的功能, 常看文件用 curl 示範 API 用法。
參考《Use CURL to Login to Websites with a Script》的教學, 學會 curl 登入網頁的用法。依我的需求消化後的步驟如下:
- 用 FireBug 之類的工具找出 login form 需要的欄位。
- 連到 web server 產生 coolkie: curl --cookie-jar cjar http://myhost/account/login/
- 送出 username/password 登入, 並更新 cookie (存到 cjar 裡): curl --cookie cjar --cookie-jar cjar http://myhost/account/login/ --data 'username=fcamel' --data 'password=xxxx'
- 使用 FireBug 觀察 ReviewBoard 刪除 request 時連的網址 (或是看 web api 文件)
- 執行指令砍掉編號 1 ~ 10 的 request: for i in {1..10}; do curl --cookie cjar --cookie-jar cjar http://myhost/api/json/reviewrequests/$i/close/discarded/; done
備註: 砍 request 要用 http://myhost/api/json/reviewrequests/$i/delete/, 但要有 admin 權限
沒有留言:
張貼留言