エンジニアのエンジニアによるノンプログラミングのためのZapier(課題管理をやりたかった)


この記事は ハンズラボ Advent Calendar 2019 24日目の記事です。

今年も、この季節がやってまいりました。
去年も一人で過ごしていました。
今年も一人です。

本当はAWS re:Inventで発表されたDeepComposerを試してみた!
というモノを書きたかったのですが、間に合わず。

次回はカラオケ平均70点の音痴男性がDeepComposer試してみたでお会いしましょう。

ではなく。

はじめに

弊社はチームにもよりますが、Backlogを主に利用しています。
合わせて、Slackも使用しています。(Slackに関する弊社AdbentCalendar記事)

POSチームは決済ログの調査依頼がきたら調査しなければなりません。
そのためチケット制にしようという声が上がり、今回の記事になりました。

要はSlackからBacklogに課題登録したい。

序章

  • 1863年11月19日リンカーンはゲスティバーグ演説を行った。
  • 2019年11月19日私はBacklogを整理行った。
  • 同年12月20日POSチームBacklogが荒廃した。

Backlogにない課題もちらほら。
世紀末です。

現代の知恵を使用する

  • チケット制にしよう。
  • Backlogの課題追加自動化できるらしいよ。
  • SlackのWorkflowもあります。
  • ノンコーディングのほうがなんかネタになりそう

ここから導き出されたモノ。

Zapier
IFTTTよりも優れてるらしい。
制限は。うん。。。

フロー(制作側)

  1. Slack Workflowで雛形を作る。
  2. ZapierでZapを作る。

フロー(利用側)

  1. Workflowの雛形で入力
  2. リアクションをつける。

ではまいろう。

Slack Workflowで雛形を作る。

Workflowを利用します。
まずなんだと思われる方は、こちらの記事をお読みいただければと思います。

名前決め

Actions menuを選択

導入するチャンネルの決定

雛形フォームの作成

今回は

  • summary(Short answer) -> Backlogの課題名
  • discription(Long answer) -> 課題の詳細

をそれぞれ入力させるようにしました。

画像では、Send submitted responses to a channel...にチェックはついていませんが
つけて、回答の吐き出し先を導入するチャンネルへしてください。

Zapの作成

Zapierってなんぞやって方は、こちらの記事をご覧ください。
非常にわかりやすくまとめられており、参考になりました。

リアクションがつけられたら発火させる


Choose Trigger Event -> New Reaction Addedを選択。


Reaction -> あまり頻繁に使用されないリアクションを選択しましょう。(カスタムリアクションも選択可)
Channel -> 導入するチャンネルを選択。

一度スプレッドシートへ吐き出す。

data1 data2 data3

上記の表のようなスプレッドシート(シート1)を作成します。

slackで特定のリアクションをつけた投稿を取得します。

  • data1 -> リアクションをつけたslackの本文
  • data2 -> リアクションをつけた人の名前
  • data3 -> タイムスタンプ

あとで使いやすいようにログとして保存するのが目的です。

フォーマットする。

遅くなりましたが、Slackから取得できる本文は以下のようになります。

Slackでリアクションをつけた本文
*testform* submission from @daisudaisuke 
*sample* てすとだす 
*sample2* ここは何も関係ない 
*discription* 来週末(12/26)帰ります。 皆さんお元気で。 良いお年を。 お体にはお気をつけて。

先ほどの手順で取得した、テキストを整形します。

Separatorは*にしているので、summary,discription内にあればそこで改行されてしまいますのでご注意を。

スプレッドシートに整形したものを連携する。

from backlog_title discription

上記の表のようなスプレッドシート(シート2)を作成します。

  • from -> フォームの回答者
  • backlog_title -> Backlogの課題名
  • discription -> 課題の詳細

となっています。
backlog_titleは上記のsummaryと同じです。

ちなみにoutput_itemはこれでも指定できます。

output_item
{{xxxxxxx__output__Item 3}} // submission from @daisudaisuke
{{xxxxxxx__output__Item 5}} // てすとだす
{{xxxxxxx__output__Item 7}} // ここは何も関係ない
{{xxxxxxx__output__Item 9}} // 来週末(12/26)帰ります。 皆さんお元気で...

BacklogにPOSTしよう。

  • BacklogAPIキー
  • projectId
  • issuTypeId

これはcurlとかで頑張って取得してください。

あとはBacklogAPIを読んで課題登録に必要なものをかけば終わりです。

ね。簡単でしょ?

この記事が書かれているということは、コーディングしたくてウズウズしているはずです。
ノンコーディングってしんどいということがわかりました。

もうやりたくないです。

というのは嘘で。
コーディングできるのであればもっと自由にできると信じています。

さくっと作るときとても便利な機能だと感じました。

もちろん、重複登録できるし、BacklogAPIキーが自分のとかは内緒だよ。
サンタさんが来てくれないよ

ハンズラボ Advent Calendar 2019」 記念すべきクリスマスの25日目は @Angelan1720 さんです!