Auzre DevOps webhook

概述

使用微軟官方的類庫 (Microsoft.AspNet.WebHooks.Receivers)

net core版本的也有,但是目前對azure devops本身還沒有支持,現在還沒有 Microsoft.AspNetCore.WebHooks.Receivers.VSTS https://github.com/aspnet/WebHooks

實現

web項目配置

綁定到IIS站點,F5就可以直接附加到iis站點,可使用postman來觸發(body中的內容可以去ads的webhook的請求中複製),也可以直接等待來自ad是觸發(前提是站點地址配置到ads的webhook中)

C# 示例代碼

    public partial class VstsWebHookHandler : VstsWebHookHandlerBase
    {
        public VstsWebHookHandler() : base()
        {
        }

        /// <summary>
        /// We use <see cref="VstsWebHookHandlerBase"/> so just have to override the methods we want to process WebHooks for.
        /// This one processes the <see cref="BuildCompletedPayload"/> WebHook.
        /// </summary>
        public override Task ExecuteAsync(WebHookHandlerContext context, BuildCompletedPayload payload)
        {
            try // 記得一定要try catch,web hook上會有錯誤計數,到了一定的數量就會自動停止webhook
            {
                if (payload.Resource.Reason.ToLower() == "usercreated")
                {
                    Logger.Info("hello !");
                }
            }
            catch (Exception ex)
            {
                Logger.Error("Webhooks Occurred Error.Evnet:" + payload.EventType, ex);
            }
            return Task.FromResult(true);
        }
}

Azure Devops 配置

項目設置 ,服務掛鉤,點擊“+”新建服務掛鉤,選擇“Web 掛鉤”,點擊“下一步”按鈕

選擇出發的事件,或者指定的字段

錄入URL地址,例如:
http://ads.jasonchen.com:8080/api/webhooks/incoming/vsts?code=83699ec7c1d794c0c780e49a5c72972590571fd8

確保狀態“已啓動”,如果有錯誤可以通過“歷史記錄”查看最新的錯誤

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章