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);
}