コード例 #1
0
        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);
            }
        }