// webhookDescribe returns a map of webhook trigger types and its corresponding // information. func webHooksDescribe(triggers []buildapi.BuildTriggerPolicy, name, namespace string, cli client.BuildConfigsNamespacer) map[string][]DescribeWebhook { result := map[string][]DescribeWebhook{} for _, trigger := range triggers { var webHookTrigger string var allowEnv *bool switch trigger.Type { case buildapi.GitHubWebHookBuildTriggerType: webHookTrigger = trigger.GitHubWebHook.Secret case buildapi.GenericWebHookBuildTriggerType: webHookTrigger = trigger.GenericWebHook.Secret allowEnv = &trigger.GenericWebHook.AllowEnv default: continue } webHookDesc := result[string(trigger.Type)] if len(webHookTrigger) == 0 { continue } var urlStr string url, err := cli.BuildConfigs(namespace).WebHookURL(name, &trigger) if err != nil { urlStr = fmt.Sprintf("<error: %s>", err.Error()) } else { urlStr = url.String() } webHookDesc = append(webHookDesc, DescribeWebhook{ URL: urlStr, AllowEnv: allowEnv, }) result[string(trigger.Type)] = webHookDesc } return result }
// webhookURL assembles map with of webhook type as key and webhook url and value func webhookURL(c *buildapi.BuildConfig, cli client.BuildConfigsNamespacer) map[string]string { result := map[string]string{} for _, trigger := range c.Spec.Triggers { whTrigger := "" switch trigger.Type { case buildapi.GitHubWebHookBuildTriggerType: whTrigger = trigger.GitHubWebHook.Secret case buildapi.GenericWebHookBuildTriggerType: whTrigger = trigger.GenericWebHook.Secret } if len(whTrigger) == 0 { continue } out := "" url, err := cli.BuildConfigs(c.Namespace).WebHookURL(c.Name, &trigger) if err != nil { out = fmt.Sprintf("<error: %s>", err.Error()) } else { out = url.String() } result[string(trigger.Type)] = out } return result }