Logic Appsを使って、Backlogとslackを連携してみた。

Logic Appsを使って、Backlogとslackを連携してみました。

Logic Appsとは

logic Apps
Azureで提供されているサービスの一つで、いろいろなサービスを連携させることができるサービスです。zaiperIFTTTと似たようなサービスです。フローの定義はJSON形式ですが、GUIからポチポチ操作することでフローを作成することができるのでEngineer出ない方にも使いやすいサービスです。

例えば、

  • FTP サーバーにアップロードされたファイルを Azure Storage に移動する
  • Tweetを監視して、アラートやタスクを作成する
  • 日本語で書いたメッセージを自動で英語に翻訳してcommitする
  • MailChimp リストに新しいメンバーが追加されたときにそのメンバーを SharePoint リストにも追加する
  • Facebook で自分のツイートを共有する

など様々なサービスを組みわせることができます。

今回はBacklogで課題が追加されたら、WebhookでLogic Appに飛ばし、そこからSlackに飛ばすようにしてみました。
15
このように【課題のタイトル】, 【期日】, 【担当者】がslackに通知されるようにします。

BacklogからWebhookに渡すJSONファイルの作成

BacklogにはWebhook機能が実装されており、この機能を使うとBacklogの課題やコメントを外部サービスに飛ばすことができます。
今回は【課題のタイトル】, 【期日】, 【担当者】を受け取れるようにします。

下記のリンクを参考にしてJSONファイルを作成します。
https://developer.nulab-inc.com/ja/docs/backlog/api/2/get-comments

そして出来上がったのがこちら。かなり簡略化してます。

{
  "content": {
    "summary": "",
    "dueDate": "",
    "assignee": {
      "userId": ""
    }
  }
}

JSON → Scheme

この作成したJSONからSchemeを作成します。
下記のようなサイトを利用すると良いと思います。

https://jsonschema.net/

9

画面左側に先ほど作成したJSONを貼り付け、generates schemaをクリックすると画面左側にSchemeが作成されるのでこれを保存しときます。

変換したScheme

{
  "$schema": "https://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "content": {
      "type": "object",
      "properties": {
        "summary": {
          "type": "string"
        },
        "dueDate": {
          "type": "string"
        },
        "assignee": {
          "type": "object",
          "properties": {
            "userId": {
              "type": "string"
            }
          },
          "required": [
            "userId"
          ]
        }
      },
      "required": [
        "summary",
        "dueDate",
        "assignee"
      ]
    }
  },
  "required": [
    "content"
  ]
}

Logic Appを作成

まずAzureでLogic Appsを作成します。
新規 → WEB+モバイル → Logic Appを選びます
1

名前、サブスクリプションを指定します。リソースグループは「LogicApp」という名前で新規に作成しました。今年はブラジルでオリンピックが開催されたので場所はブラジル南部にしときます(Latencyとか考える場合は近場のほうが良いです)。そして作成。
2

作成されたら、Logic Appsの設定画面を開きます。

リソースグループ で先ほど指定したリソースグループ(今回はLogicApp)を選択して、作成したLogicApps(今回はBacklogToSlack)を選択します。
4

設定画面が開いたら、Logic Apps デザイナーを選択し、空のLogic Appを選択します。
5

トリガーとして「要求」を選択して、先ほど作成したJSONスキーマを貼り付けます。そして、一旦保存します。
10

保存すると、HTTP POSTのURLが作成されるのでこれを保存しときます。

Logic App と Slackと連携

Logic AppとSlackと連携します。アクションでslackを選択してサインインします。
8

連携後に、Slackのチャネルと出力Formatを決めます。
11

保存してAzure側の作業は終わりです。

BacklogからLogic Appsの設定

Backlogのプロジェクト設定から、Webhookを追加します。
12

今回は下記の用に設定しました。WebHook URLは先程Logic Appで作成した「HTTP POSTのURL」を記入します。
13

設定後WebHookを追加するで設定を保存します。

これで設定完了です。

実際に課題を追加してみる

実際に課題を追加してみましょう。
14

追加






15

Slackに無事通知がきました。

ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

0人がこの投稿は役に立ったと言っています。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です