public void UpdateWebHook() { if (!SupportsTesting) { return; } var sourceProject = gitLabWrapper.GetProject(MergeRequest.MergeRequest.SourceProjectId); var webHook = gitLabWrapper.FindProjectHook(sourceProject, x => WebHookHelper.IsSharedHook(WebHook, x.Url)); if (webHook != null && WebHookHelper.EnsureWebHook(webHook)) { return; } var webHookTask = WebHookTask; var webHookPath = WebHook; if (string.IsNullOrEmpty(webHookTask) || string.IsNullOrEmpty(webHookPath)) { return; } var farmStatus = FarmIntegrator.GetExtendedTaskStatus(webHookTask); if (farmStatus == null) { return; } var url = new Uri(WebHookHelper.GetSharedHookUrl(IPAddress.Parse(farmStatus.HyperHost), webHookPath)); if (webHook == null) { gitLabWrapper.CreateProjectHook(sourceProject, url, true, true, true); } else { gitLabWrapper.UpdateProjectHook(sourceProject, webHook, url, true, true, true); } }