C# 开发

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中)
azure devops 中的 webhook

示例代码

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 配置

在Azure Devops 中 配置 Web Hook,如果配置的项目过多,也可以考虑调用 Rest API 来创建。
项目设置 ,服务挂钩,点击“+”新建服务挂钩,选择“Web 挂钩”,点击“下一步”按钮
azure devops 中的 webhook

选择出发的事件,或者指定的字段
azure devops 中的 webhook

录入URL地址,例如:
http://ads.jasonchen.com:8080/api/webhooks/incoming/vsts?code=83699ec7c1d794c0c780e49a5c72972590571fd8
azure devops 中的 webhook

确保状态“已启动”,如果有错误可以通过“历史记录”查看最新的错误
azure devops 中的 webhook

相关文章:

  • 2021-07-14
  • 2021-11-15
  • 2022-03-08
  • 2021-07-19
  • 2022-02-15
  • 2021-10-18
  • 2021-06-20
  • 2022-03-07
猜你喜欢
  • 2021-07-04
  • 2021-10-17
  • 2021-03-27
  • 2021-10-27
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案