Q:APIで特定チケットのフィールド値を取得することはできますか
あるマイルストーン設定された複数のチケット情報をエクスポート
→ローカルの Excel で各種集計
→他サービスへ転記というプロセス現在おこなっており、API 経由で情報が取得しある程度自動化したい
A: CSV をダウンロードしてこれをスクリプトなどで処理するのが簡単です
最初のエクスポートを手動で行ってもよいのであれば、カスタムクエリから必要になる条件を指定した上で CSV をダウンロードしてこれをスクリプトなどで処理するのが簡単です。
ログイン済みであれば、カスタムクエリのページをアクセスせずに CSV ダウンロードのURL から直接保存することができます。
その工程も API で処理を行いたいということであれば、API にある ticket.query,ticket.get, system.multicall を用いてチケットの内容を取得することができます。
API については以下のページに簡単な説明と API の一覧があります。
https://[ご自分のサイトアドレス]/p/[プロジェクト名称]/rpc
サンプルコード
// 以下の `<sitename>`, `<projname>`, ユーザ名、パスワードはご利用のものに置き換えてください var ENDPOINT = 'https://<sitename>.tracpath.com/p/<projname>/login/rpc'; var USERNAME = 'username'; var PASSWORD = 'XXXXXXXXXXXXXXXXXXXXXXXXXXX'; function jsonrpc(method, params) { if (params === undefined) params = []; var data = JSON.stringify({method: method, params: params, id: 42}); var xhr = new ActiveXObject('Msxml2.ServerXMLHTTP'); xhr.open('POST', ENDPOINT, false, USERNAME, PASSWORD); xhr.setRequestHeader('Content-Type', 'application/json'); xhr.send(data); return JSON.parse(xhr.responseText); } function ticket_query_and_get() { var params = ['milestone=マイルストーン42']; var rv = jsonrpc('ticket.query', params); params = rv.result.map(function(id) { return {method: 'ticket.get', params: [id]}; }); rv = jsonrpc('system.multicall', params); return rv.result; }