背景
wiki の更新通知を用意したかったが、DevOps のActionにはなかった。
しかしながら、Azure DevOps Wiki は、Git で管理されていて、Azure Repos を Repository にすることも可能
ということで、Git の更新を検知して飛ばす方向で。
結果例
こんな感じで、編集すると、通知が飛んでくる
前提
- Wiki を作るときに Publish code as wiki を選択する
詳しくは以下で
Power Automate
- Wiki の元とした Git で、プッシュをトリガー
- トリガーから、以下 ID を取得
- repositoryID
- newObjectId
- commitID
- コミットIDから、変更(changes) を取得
- あとは、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 差分なら簡単なんだが・・まぁ、とりあえずは放置・・