0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Azure DevOpsAdvent Calendar 2023

Day 11

Power Automate: Azure DevOps のWiki更新を、Teamsに通知する

Posted at

背景

wiki の更新通知を用意したかったが、DevOps のActionにはなかった。

しかしながら、Azure DevOps Wiki は、Git で管理されていて、Azure Repos を Repository にすることも可能

ということで、Git の更新を検知して飛ばす方向で。

結果例

こんな感じで、編集すると、通知が飛んでくる

image.png

前提

  • Wiki を作るときに Publish code as wiki を選択する

image.png

詳しくは以下で

Power Automate

実装例
image.png

  1. Wiki の元とした Git で、プッシュをトリガー
  2. トリガーから、以下 ID を取得
    • repositoryID
    • newObjectId
      • commitID
  3. コミットIDから、変更(changes) を取得
  4. あとは、Teamsへ投稿する

トリガーについて

  • Wiki をフォルダー扱いとしている場合は、フォルダーを Trigger Condition に突っ込めないので、内容から判断する必要がありそう

トリガーからのID取得

  • newObjectId は以下で取得
    • Wiki の編集で、同時に複数コミットがあるとは思えないので、first() を利用
newObjectID as newCommitID
@{first(triggerOutputs()?['body/refUpdates'])?['newObjectId']}

changes の取得

以下、REST API を使用。
これの為に、事前に ID を取得している

Teams への投稿

  • Git として管理しているだけで、wiki を認識はしてなさそうなので、通知として使う場合は、Wiki 自体へのリンクは最初から貼っておく必要がある。(指定のパスに飛ばしたい場合は、相対パスで合成すれば行ける筈)

  • changes にある item URL は、最新ファイル取得してくるので、まぁ、結果を見るには便利

  • 元の CommitID から、旧ファイル取得して差分をとかも出来るかもしれないが面倒なんでパス

あとがき

Wiki の編集をちょこちょこやってしまうと、通知がわんさか飛んでくる・・
でもって、差分が分からないのはちょっとうざい・・

Commit 差分なら簡単なんだが・・まぁ、とりあえずは放置・・

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?