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

◆ Live配信スケジュール ◆
サイオステクノロジーでは、Microsoft MVPの武井による「わかりみの深いシリーズ」など、定期的なLive配信を行っています。
⇒ 詳細スケジュールはこちらから
⇒ 見逃してしまった方はYoutubeチャンネルをご覧ください
【6/19開催】Kong Community Japan Meetup #4
本イベントでは、Kong Inc. のVP of ProductであるReza Shafii氏もプレゼンターとして参加。当社からはアーキテクト マネージャーの槌野の登壇が決定!参加無料です!!
https://column.api-ecosystem.sios.jp/connect/kong/1081/

【6/21開催】開発者目線でのSBOMとの向き合い方
SBOMの導入から開発者がSBOMの作成・管理を自動で行っていくための方法(デモ)を紹介します。SBOMを全く知らない人から、開発との統合までを紹介するので様々なレベルの方に学びがあるライブとなる予定です!
https://tech-lab.connpass.com/event/321422/

【7/19開催】現場で役立つAzure神小技10+α 〜生成AI,RAG,コスト削減など旬な技術満載のLT大会〜
Azureの最新技術や実用的な小技を紹介する特別なライトニングトーク大会を開催します!
https://tech-lab.connpass.com/event/319077/

【7/26開催】最適なIaCツールを選ぼう
プロジェクトでのツール選びに困らないための重要な観点をご説明します!
https://tech-lab.connpass.com/event/319532/

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に無事通知がきました。

アバター画像
About サイオステクノロジーの中の人です 88 Articles
サイオステクノロジーで働く中の人です。
ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

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

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


ご覧いただきありがとうございます。
ブログの最新情報はSNSでも発信しております。
ぜひTwitterのフォロー&Facebookページにいいねをお願い致します!



>> 雑誌等の執筆依頼を受付しております。
   ご希望の方はお気軽にお問い合わせください!

Be the first to comment

Leave a Reply

Your email address will not be published.


*


質問はこちら 閉じる