Trello x JIRA 自動連携

GMOアドマーケティング SSP開発チームのKA.Mです。前回紹介したJIRA x GitHub自動連携の記事は見て頂けましたでしょうか。まだ、ご覧でない方は先にそちらを見て頂けると幸いです。

アドマーケティング SSP開発チームのKA.Mです。無事引っ越しできました。チーム内でGo言語が盛んになっており、同僚と共に日々精進しています。vim-go と ale というPluginによるGo言語サポートが熱いですね。✕引用元: https://github.com/logos引用元: https://atlassian.design/guidelines/marketing/resources/logo-files最近、SSP開発チームでJIRA Softwareを使い始めました。実際に使いSSP開発チーム仕様にカスタマイズを加える事で利便性が向上した事例をご紹介致します。まずはじめにJIRAの概要として、JIRAはアトラシアン株式...

前回の記事ではJIRA x GitHubの自動連携を実現し、開発中のステータス移動がほぼ発生しない事を実現しました。私的にはこの時点でだいぶ満足で特に不満もありませんでした。

そう当時は。。。

月日が流れ私も入社1年と半年強です。気づいた頃にはディレクタとのやり取りもずいぶん増えてきました。ディレクタから開発への依頼はTrelloを用いています。
Trelloは言わずとしれたアトラシアン株式会社様の製品となります。TrelloはJIRAよりもカジュアルにタスクを作成し、気軽に開発チームに依頼できる便利なツールです。ディレクタとのやり取りが増え気づいた事があります。

JIRAへの同期が何回もクリックしないといけなく、手間であると。

そこで今回はテックブログネタとしてTrelloのWebhookを活用して、簡単なJIRA連携についてご紹介したいと思います。

はじめに

TrelloのWebhookの紹介ページを見てみましょう。


紹介ページをもとに実際に登録していきます。
まずはじめにWebhookの登録処理をPHPで実装します。

こんな感じの実装になると思います。
ここで必要となる情報は以下の通りです。

  • key
  • token
  • idModel
  • CallbackURL

key, token, secretの発行

Trelloにログインした状態で下記ページにアクセスします。ページから必要となるkey, token, secret情報を取得します。secretは署名判定処理で使用します。

https://trello.com/app-key

idModelの確認

TrelloのWebhookはidMoelベースでWebhookを設定する事が出来ます。
今回はTrelloのボード自体にWebhookを設定してみます。でははじめに先程発行したtoken情報からtokenに関わる情報を取得してみましょう。

実行する事でtokenを発行したメンバー情報が確認できるでしょう。続いて取得した idMember 情報から所属しているボード情報を取得します。

コレで設定する idBoard 情報は取得できましたが、どの idBoard を設定するのか現状わかりません。そこで各 idBoard の詳細を見ていきます。

確認した所 idBoardcccccccc が本来使用したかったIDである事がわかります。CallbackURLはイベント発火時に呼ばれるURLとなるため、事前に用意しておきましょう。これでWebhook登録に必要な情報が全て揃いましたので、とりあえず試しに登録してみましょう、無事登録出来ると思います。

Webhookの削除

試しに登録した後は削除する必要があると思います。そこで現在登録されているWebhookの情報を確認してみます。

実行結果からidWebhookの yyyyyyyy を今回は削除したいとします。

これで削除出来ました。削除できたかを確認する場合は先に実行した設定されているWebhook一覧を再度呼ぶ事で現在の設定状況が確認できます。これでひとまずWebhookの登録は完了しました。

署名チェック

Webhookの登録が完了したタイミングから実際にイベントが実行されCallbackURLが呼ばれるようになります。そこでヘッダの情報を検証してみましょう。

問題なく機能すると true になるかと思います。

Trelloカード情報取得

Trelloのリクエスト情報は実際に操作してみて確認するのが早いでしょう。今回は『Trelloでリスト間移動イベント』の情報を見てみます。具体的な利用ケースはディレクタの企画に対して工数見積を行い、開発するとなった時に『未着手』リストにカードを移動させたときが今回のケースとなります。

リスト間移動をおこなった場合は上のような感じのリクエストがCallbackURLに届きます。この情報を元にカード情報を取得します。念の為、すでにJIRA連携していないかも確認した方が良いでしょう。すでにJIRAに連携済みであれば連携しないにこした事はありません。API仕様を確認しながら挙動確認した所、 attachments の情報を元に判断するのが良いとわかりました。ここで取得した情報を元にJIRA連携を実施します。

JIRAタスク作成

前回の続きという事ですでに認証情報は取得している前提となります。

これでJIRAにタスクが作成されました。この他にもGMOSSPでは自動で変わるJIRAのステータスに合わせて、Trelloのリストを移動させ、 未着手 > 着手中 > リリース と自動でリスト移動を行うようにしました。まだ、コメントや添付ファイル連携など検討要素は多々ありますが、まずは自動化を実現できたのではと考えています。

まとめ

今回はTrelloのWebhookを利用する事でJIRA、GitHubとの連携をシームレスに実現しました。リアルタイムに反映される事でより快適な開発環境が実現できたのではないかと思います。