前編:GAS初心者がBacklog-JIRA連携してみた 〜チケットの連携をGASで一生懸命がんばったら外部ツールで一瞬でできた話〜

投稿者: | 2019年3月7日

GMOアドマーケティングA.Yです。
このエントリーは、GMOアドマーケティング Advent Calendar 2018【12/6】 の記事を加筆修正したものです。

背景

社内ではBacklogとJIRAというふたつのチケット管理ツールを使っています。
Backlogはとても使いやすいチケット管理ツールですが、唯一の欠点は、時間管理機能が貧弱ということ・・・。
日毎の時間集計をすることができないんです。いつ、誰が何をしていたか、工数集計をすることができません。

かといって、いちいちふたつのチケット管理ツールを開いて、JIRAに時間を入力させるのもちょっとなぁ、と思って時間連携ツールを作ることにしました。

やりたいこと

前提:Backlogに当日の作業時間が入力されていること
1. Backlogから時間を取得する
2. 対応するJIRAチケットを検索する(Backlogの課題キーをJIRAのカスタムフィールド「Backlog課題番号」に持っている前提)
3. 検索にヒットしたら、対応するJIRAのチケットに時間を記録する
4. 検索にヒットしない場合、(Backlogの課題キーをJIRAのカスタムフィールド「Backlog課題番号」にセットしてチケットを作成

実装

それでは、GASで実装していきます。 **と記載されているところは、環境ごとに設定してください。

Main.gs

メインとなるクラス。ここで上記の「やりたいこと」に書いてある処理を順次呼んでいきます。

GetBacklog.gs

Backlogから課題を取得します。

ProcessJira.gs

JIRAをBacklog課題キーをつかって検索し、ない場合はJIRAのチケット作成、ある場合はBacklogに記入された時間をJIRAに連携します。

地味にハマったこと

  • JIRAのREST-APIはv2とv3があります。v3のほうはいまだベータ版であり、エラー・メッセージが間違っていたり、ざっくりしすぎていることがあります。僕の場合自分のリクエストがどう間違っているかわからずとてもハマりました。

  • JIRAのapiドキュメントはときどきリンクが間違っていて、v2のドキュメントを見ているはずが、v3のドキュメントにリンクされていたりします。注意してください。URLで見分けましょう。こちらはv2 https://developer.atlassian.com/cloud/jira/platform/rest/v2/

  • JIRAのapiドキュメントには、Exampleという項目がありrequestパラメータ例が書いてありますが、フォーマット定義から自動生成されています。そのままrequest投げても動きません。あくまでもイメージです(笑)

しかしこのときの僕は知りませんでした。あんなに楽な方法があったなんて。。。
次回に続く。

The following two tabs change content below.

あおんた

あおんた

SIコンサルティング会社上がりのPHP/Javaエンジニア。マネジメントとコーディングをしながら、業務効率化を進めるのが好き。最近はZapier(ザピエル)という連携ツールが大好物。

マイブームは、ペーパードライバー卒業・天体観測・アマチュア無線・BCL受信・カセットテープデッキのメンテ修理・登山とか。

写真は飼っている文鳥のおつゆちゃん。

カテゴリー: Google Apps Script
あおんた

あおんた について

SIコンサルティング会社上がりのPHP/Javaエンジニア。マネジメントとコーディングをしながら、業務効率化を進めるのが好き。最近はZapier(ザピエル)という連携ツールが大好物。 マイブームは、ペーパードライバー卒業・天体観測・アマチュア無線・BCL受信・カセットテープデッキのメンテ修理・登山とか。 写真は飼っている文鳥のおつゆちゃん。