3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GitLabのイベントをTeamsへ通知する仕組みをPower Automateで作ってみた

3
Posted at

はじめに

GitLabにはMicrosoft Teamsへの通知機能が用意されており、Teams側の「ワークフロー(Workflows)」アプリと組み合わせることで、比較的簡単に通知を飛ばすことができます。

ただし、通知メッセージの文面やフォーマットを細かくカスタマイズするのは難しく、通知内容によっては少し見づらさを感じました。

そこで今回は、Power Automateの学習も兼ねて、GitLabのイベントをTeamsへ通知するフローを作成してみます。

対象者

  • Power Automateの基本操作を理解している方
  • GitLabとTeamsを連携してみたい方
  • 通知内容を自由にカスタマイズしたい方

今回の要件

  • Teams内の特定スレッドにGitLabのイベントを通知する
  • 通知時にレビュアーやメンバーへメンションを付与する
  • 通知内容を見やすい形式に整形する

基盤づくり

まずは、GitLabからPower Automateへイベントを送信できるよう設定していきます。

1.PowerAutomate側の設定

① フローを作成する

Power Automateで新しいフローを作成します。
[作成]>[インスタント クラウド フローを構築する]>[HTTP 要求の受信時]で作成してください。
image.png

② Teamsへの通知アクションを追加する

続いて以下のアクションを追加します。

  • ユーザーの@mentionトークンを取得する
  • チャットまたはチャネルでメッセージを投稿する

各アクションの設定を行い、フローを保存します。

image.png

③ HTTP URLを取得する

保存後、開始トリガーに表示されるHTTP URLをコピーしておきます。
後ほどGitLabのWebhook設定で利用します。

image.png

2.GitLab側の設定

続いてGitLab側の設定を行います。

① Webhook設定画面を開く

対象のプロジェクトを開き、
[設定]>[Webhooks]を選択します。

image.png

② Webhookを登録する

[新しいWebhookを追加]を押下し、以下の内容を設定します。
URL:Power Automateで取得したHTTP URL
トリガー:任意のイベントを選択
その他の設定は用途に応じて変更してください。

設定後、[Webhookを追加]を押下します。

3.動作確認

①Webhookをテストする

Webhook設定画面の[テスト]から、対象イベントを実行します。

image.png

② Teamsへ通知されることを確認する

正常に設定できていれば、指定したTeamsのチャネルへ通知が送信されます。

image.png

より詳しい情報を表示する

ここまでの設定でも通知は可能ですが、せっかくPower Automateを利用しているので、イベント情報を活用して通知内容を充実させてみます。

Power Automateの実行履歴を開くと、「HTTP 要求の受信時」アクションの出力からGitLabが送信したJSONデータを確認できます。

新しいデザイナーでは開始アクションの出力が表示されない場合があります。
その場合はクラシックデザイナーで実行履歴を確認してください。

このJSONには以下のような情報が含まれています。

  • 実行ユーザー
  • ブランチ名
  • コミットメッセージ
  • コミットURL
  • Merge Request情報
  • レビュアー情報
    等

これらの値を利用することで、イベント内容に応じた通知メッセージを作成できます。
image.png

(Teamsでリンクがリンクとして反映されずベタ張りになってしまっている...検討中)

条件分岐を追加することで、

  • イベント内容によって通知内容を変える
  • レビュアーを自動でメンションする
  • 特定ブランチのみ通知する

といった運用も可能になるため、カスタマイズ性が高く業務に合わせた運用を実現しやすいのが魅力だと感じました。

おわりに

今回はPower AutomateとGitLabを利用して、GitイベントをTeamsへ通知する仕組みを作成しました。

単純な通知だけであれば標準の連携機能でも十分ですが、Power Automateを経由することで通知内容を柔軟にカスタマイズできるのが大きなメリットだと感じました。

同じような構成を検討している方の参考になれば幸いです。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?