diff --git a/go.mod b/go.mod index e14dbdb0f8..123dd25cdb 100644 --- a/go.mod +++ b/go.mod @@ -12,7 +12,7 @@ require ( github.com/manifestival/client-go-client v0.6.0 github.com/manifestival/manifestival v0.7.2 github.com/markbates/inflect v1.0.4 - github.com/openshift-pipelines/pipelines-as-code v0.39.2 + github.com/openshift-pipelines/pipelines-as-code v0.39.3 github.com/openshift/api v0.0.0-20240521185306-0314f31e7774 github.com/openshift/apiserver-library-go v0.0.0-20230816171015-6bfafa975bfb github.com/openshift/client-go v0.0.0-20240523113335-452272e0496d diff --git a/go.sum b/go.sum index a03c6a0f49..dae37b4a1e 100644 --- a/go.sum +++ b/go.sum @@ -2377,8 +2377,8 @@ github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8 github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= github.com/opencontainers/image-spec v1.1.1 h1:y0fUlFfIZhPF1W537XOLg0/fcx6zcHCJwooC2xJA040= github.com/opencontainers/image-spec v1.1.1/go.mod h1:qpqAh3Dmcf36wStyyWU+kCeDgrGnAve2nCC8+7h8Q0M= -github.com/openshift-pipelines/pipelines-as-code v0.39.2 h1:VvSzAaWlEcOnu6xRXWKEquYbdr6RYqTv6zQzIym+NK4= -github.com/openshift-pipelines/pipelines-as-code v0.39.2/go.mod h1:5KqGAgmiFldqi4KG4Vj/5juzbUbPucASmqKrWwePG9U= +github.com/openshift-pipelines/pipelines-as-code v0.39.3 h1:Er8vZZrbslGeaGG5tUlMbUlzTeMCyMRsWqSD5tIJUjo= +github.com/openshift-pipelines/pipelines-as-code v0.39.3/go.mod h1:5KqGAgmiFldqi4KG4Vj/5juzbUbPucASmqKrWwePG9U= github.com/openshift/api v0.0.0-20240521185306-0314f31e7774 h1:SsoLnIil/D0FcjUbQ9Z8h95B7rxFvrso2X6OQjR8jPw= github.com/openshift/api v0.0.0-20240521185306-0314f31e7774/go.mod h1:7Hm1kLJGxWT6eysOpD2zUztdn+w91eiERn6KtI5o9aw= github.com/openshift/apiserver-library-go v0.0.0-20230816171015-6bfafa975bfb h1:UMgJny13BBcHpY+JQ9Eg1Dm9+J7nWO3eqPvV1Zpd49A= diff --git a/vendor/github.com/openshift-pipelines/pipelines-as-code/pkg/params/settings/default.go b/vendor/github.com/openshift-pipelines/pipelines-as-code/pkg/params/settings/default.go index 85e196d071..f0ea70ec8d 100644 --- a/vendor/github.com/openshift-pipelines/pipelines-as-code/pkg/params/settings/default.go +++ b/vendor/github.com/openshift-pipelines/pipelines-as-code/pkg/params/settings/default.go @@ -1,9 +1,13 @@ package settings import ( + "context" "fmt" + "net/http" "net/url" + "strings" "sync" + "time" hubtypes "github.com/openshift-pipelines/pipelines-as-code/pkg/hub/vars" "go.uber.org/zap" @@ -20,6 +24,9 @@ func getHubCatalogs(logger *zap.SugaredLogger, catalogs *sync.Map, config map[st if hubType, ok := config[HubCatalogTypeKey]; !ok || hubType == "" { config[HubCatalogTypeKey] = hubtypes.ArtifactHubType + if config[HubURLKey] != "" { + config[HubCatalogTypeKey] = getHubCatalogTypeViaAPI(config[HubURLKey]) + } } else if hubType != hubtypes.ArtifactHubType && hubType != hubtypes.TektonHubType { logger.Warnf("CONFIG: invalid hub type %s, defaulting to %s", hubType, hubtypes.ArtifactHubType) config[HubCatalogTypeKey] = hubtypes.ArtifactHubType @@ -105,3 +112,28 @@ func getHubCatalogs(logger *zap.SugaredLogger, catalogs *sync.Map, config map[st } return catalogs } + +func getHubCatalogTypeViaAPI(hubURL string) string { + statsURL := fmt.Sprintf("%s/api/v1/stats", strings.TrimSuffix(hubURL, "/")) + + ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) + defer cancel() + + req, err := http.NewRequestWithContext(ctx, http.MethodGet, statsURL, nil) + if err != nil { + return hubtypes.TektonHubType + } + + resp, err := http.DefaultClient.Do(req) + if err != nil { + return hubtypes.TektonHubType + } + defer resp.Body.Close() + + if resp.StatusCode == http.StatusOK { + return hubtypes.ArtifactHubType + } + + // if the API call fails, return Tekton Hub type + return hubtypes.TektonHubType +} diff --git a/vendor/modules.txt b/vendor/modules.txt index fd018f6df2..bbadccc5a3 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -1001,7 +1001,7 @@ github.com/opencontainers/go-digest ## explicit; go 1.18 github.com/opencontainers/image-spec/specs-go github.com/opencontainers/image-spec/specs-go/v1 -# github.com/openshift-pipelines/pipelines-as-code v0.39.2 +# github.com/openshift-pipelines/pipelines-as-code v0.39.3 ## explicit; go 1.24.0 github.com/openshift-pipelines/pipelines-as-code/pkg/cli github.com/openshift-pipelines/pipelines-as-code/pkg/configutil