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;
}


リンク

TipsAndHowto/APIで特定チケットのフィールド値を取得することはできますか (last edited 2021-08-23 01:23:19 by omae)