Exemplo n.º 1
0
// 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
}
Exemplo n.º 2
0
// 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
}