Backlog API で取得したプロジェクト一覧を、kintoneにCSV読み込みしてプロジェクトマスタを作成する
プロジェクト管理ツールBacklogのプロジェクト一覧をBacklog APIを使ってプロジェクトの一覧を取得して見ます。
さらに、出力されたJSONデータをjqで整形してCSVに出力し、それをプロジェクトマスタとしてkintoneに読み込みます。
最終的にはBacklogの課題の実績時間をプロジェクト毎に集計したいと思います。
対象
- Backlogユーザー
- プロジェクトマネジメントに関わる方
システム構成
- Backlog
- kintone
Backlog API でプロジェクトの一覧を取得する
プロジェクト一覧の取得
- Backlog
- kintone
Backlog API でプロジェクトの一覧を取得する
プロジェクト一覧の取得
cURLを使います。
$BACKLOG_URL
にはBacklogのURL,$APIKEY
にはBacklogのAPIKeyをセットして渡します。
curl -s $BACKLOG_URL/api/v2/projects\?apiKey=$APIKEY
結果
$ bash project-sample.bash
[{"id":19547,"projectKey":"PROG","name":"プログラミング開発","chartEnabled":false,"subtaskingEnabled":false,"projectLeaderCanEditProjectLeader":false,"useWikiTreeView":true,"textFormattingRule":"markdown","archived":false,"displayOrder":2147483646}]
jq
で整形します。
curl -s $BACKLOG_URL/api/v2/projects\?apiKey=$APIKEY | jq -r '.'
[
{
"id": 19547,
"projectKey": "PROG",
"name": "プログラミング開発",
"chartEnabled": false,
"subtaskingEnabled": false,
"projectLeaderCanEditProjectLeader": false,
"useWikiTreeView": true,
"textFormattingRule": "markdown",
"archived": false,
"displayOrder": 2147483646
}
]
"ID","プロジェクトKey","プロジェクト名"のみ取り出してCSVで出力します。
適当な名前でCSVファイルにしておきます。
curl -s $BACKLOG_URL/api/v2/projects\?apiKey=$APIKEY\&archived=false | jq -r '.[] | [.id, .projectKey, .name] | @csv'
19547,"PROG","プログラミング開発"
プロジェクトマスタ kintoneアプリ
kintoneアプリを作ります。
予定工数は後ほど数値を手入力します。
出力したCSVを読み込みます。
まずはここまで。
次やること
- Backlog API で取得したプロジェクト一覧を、kintoneにCSV読み込みしてプロジェクトマスタを作成する(済)
- Backlogのタスク登録→kintoneのタスク管理アプリにレコード登録する
- タスク管理アプリとプロジェクトマスタからプロジェクト毎の予定時間と実績時間の集計をする
2.は外部API連携サービス(ZapierやPower Automate、Integromat)を利用するかもです。
3.は集計用のkintoneアプリを作って、集計処理をJSでゴリゴリ書こうかな。
Author And Source
この問題について(Backlog API で取得したプロジェクト一覧を、kintoneにCSV読み込みしてプロジェクトマスタを作成する), 我々は、より多くの情報をここで見つけました https://qiita.com/sy250f/items/1a193ce152a1c6711755著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .