{
    "apiVersion": "v1",
    "items": [
        {
            "apiVersion": "tekton.dev/v1",
            "kind": "TaskRun",
            "metadata": {
                "annotations": {
                    "chains.tekton.dev/signed": "true",
                    "operator-sdk/primary-resource": "ex-registry-sh-869ae581/snapshot-sample-869ae581-bsrlj",
                    "operator-sdk/primary-resource-type": "Release.appstudio.redhat.com",
                    "pipeline.tekton.dev/release": "70f7308",
                    "results.tekton.dev/childReadyForDeletion": "true",
                    "results.tekton.dev/record": "ex-registry-sh-managed-869ae581/results/add9a4ba-a70a-422c-b994-67c1bcbfd6b8/records/af1d1bc2-5e6e-4c14-a8ea-5391c48ff942",
                    "results.tekton.dev/result": "ex-registry-sh-managed-869ae581/results/add9a4ba-a70a-422c-b994-67c1bcbfd6b8",
                    "results.tekton.dev/stored": "true",
                    "tekton.dev/pipelines.minVersion": "0.12.1",
                    "tekton.dev/tags": "release"
                },
                "creationTimestamp": "2026-08-26T17:49:28Z",
                "finalizers": [
                    "results.tekton.dev/taskrun",
                    "chains.tekton.dev/taskrun"
                ],
                "generation": 1,
                "labels": {
                    "app.kubernetes.io/managed-by": "tekton-pipelines",
                    "appstudio.openshift.io/application": "appstudio",
                    "appstudio.openshift.io/service": "release",
                    "appstudio.openshift.io/snapshot": "snapshot-sample-869ae581",
                    "pipelines.appstudio.openshift.io/type": "managed",
                    "release.appstudio.openshift.io/attempt": "0",
                    "release.appstudio.openshift.io/name": "snapshot-sample-869ae581-bsrlj",
                    "release.appstudio.openshift.io/namespace": "ex-registry-sh-869ae581",
                    "tekton.dev/memberOf": "tasks",
                    "tekton.dev/pipeline": "push-to-external-registry",
                    "tekton.dev/pipelineRun": "managed-hgppl",
                    "tekton.dev/pipelineRunUID": "add9a4ba-a70a-422c-b994-67c1bcbfd6b8",
                    "tekton.dev/pipelineTask": "apply-mapping",
                    "tekton.dev/task": "apply-mapping"
                },
                "name": "managed-hgppl-apply-mapping",
                "namespace": "ex-registry-sh-managed-869ae581",
                "ownerReferences": [
                    {
                        "apiVersion": "tekton.dev/v1",
                        "blockOwnerDeletion": true,
                        "controller": true,
                        "kind": "PipelineRun",
                        "name": "managed-hgppl",
                        "uid": "add9a4ba-a70a-422c-b994-67c1bcbfd6b8"
                    }
                ],
                "resourceVersion": "10453",
                "uid": "af1d1bc2-5e6e-4c14-a8ea-5391c48ff942"
            },
            "spec": {
                "params": [
                    {
                        "name": "failOnEmptyResult",
                        "value": "true"
                    },
                    {
                        "name": "dataPath",
                        "value": "add9a4ba-a70a-422c-b994-67c1bcbfd6b8/data.json"
                    },
                    {
                        "name": "snapshotPath",
                        "value": "add9a4ba-a70a-422c-b994-67c1bcbfd6b8/snapshot_spec.json"
                    },
                    {
                        "name": "ociStorage",
                        "value": "quay-service.quay/test-org/trusted-artifacts"
                    },
                    {
                        "name": "sourceDataArtifact",
                        "value": "oci:quay-service.quay/test-org/trusted-artifacts@sha256:37145077f122f4156850e48a6e6eacb7c486d6f73e5dd8a1ef21c4652768fcce"
                    },
                    {
                        "name": "dataDir",
                        "value": "/var/workdir/release"
                    },
                    {
                        "name": "trustedArtifactsDebug",
                        "value": ""
                    },
                    {
                        "name": "taskGitUrl",
                        "value": "https://github.com/swickersh/release-service-catalog"
                    },
                    {
                        "name": "taskGitRevision",
                        "value": "4d8f5d74eb4405ac637042fde05a3330b26bb548"
                    }
                ],
                "retries": 3,
                "serviceAccountName": "release-service-account",
                "taskRef": {
                    "params": [
                        {
                            "name": "url",
                            "value": "https://github.com/swickersh/release-service-catalog"
                        },
                        {
                            "name": "revision",
                            "value": "4d8f5d74eb4405ac637042fde05a3330b26bb548"
                        },
                        {
                            "name": "pathInRepo",
                            "value": "tasks/managed/apply-mapping/apply-mapping.yaml"
                        }
                    ],
                    "resolver": "git"
                },
                "timeout": "3h50m0s"
            },
            "status": {
                "artifacts": {},
                "completionTime": "2026-08-26T17:51:10Z",
                "conditions": [
                    {
                        "lastTransitionTime": "2026-08-26T17:51:10Z",
                        "message": "All Steps have completed executing",
                        "reason": "Succeeded",
                        "status": "True",
                        "type": "Succeeded"
                    }
                ],
                "podName": "managed-hgppl-apply-mapping-pod",
                "provenance": {
                    "featureFlags": {
                        "awaitSidecarReadiness": true,
                        "coschedule": "workspaces",
                        "enableAPIFields": "beta",
                        "enableProvenanceInStatus": true,
                        "enforceNonfalsifiability": "none",
                        "maxResultSize": 4096,
                        "resultExtractionMethod": "termination-message",
                        "runningInEnvWithInjectedSidecars": true,
                        "sendCloudEventsForRuns": true,
                        "verificationNoMatchPolicy": "ignore"
                    },
                    "refSource": {
                        "digest": {
                            "sha1": "4d8f5d74eb4405ac637042fde05a3330b26bb548"
                        },
                        "entryPoint": "tasks/managed/apply-mapping/apply-mapping.yaml",
                        "uri": "git+https://github.com/swickersh/release-service-catalog"
                    }
                },
                "results": [
                    {
                        "name": "mapped",
                        "type": "string",
                        "value": "true"
                    },
                    {
                        "name": "sourceDataArtifact",
                        "type": "string",
                        "value": "oci:quay-service.quay/test-org/trusted-artifacts@sha256:796060eab5e88d382728c562b7ace0df1ccd88413715d8358f2e671a86bd3644"
                    }
                ],
                "startTime": "2026-08-26T17:49:28Z",
                "steps": [
                    {
                        "container": "step-use-trusted-artifact",
                        "imageID": "quay.io/konflux-ci/build-trusted-artifacts@sha256:9bd32f6bafb517b309e11a2d89365052b4ab3f1c9c23c4ffd45aff6f03960476",
                        "name": "use-trusted-artifact",
                        "provenance": {},
                        "terminated": {
                            "containerID": "containerd://58e6fcd74b43f1d1cbaa1fce232b402832ae125b885975f3e1eccce01a886124",
                            "exitCode": 0,
                            "finishedAt": "2026-08-26T17:51:04Z",
                            "reason": "Completed",
                            "startedAt": "2026-08-26T17:51:04Z"
                        },
                        "terminationReason": "Completed"
                    },
                    {
                        "container": "step-apply-mapping",
                        "imageID": "quay.io/konflux-ci/release-service-utils@sha256:4eee3d7d6e914f9f11a0a8f23b989f72d94cf70332e658ee87b1bb171a2b1cf6",
                        "name": "apply-mapping",
                        "provenance": {},
                        "terminated": {
                            "containerID": "containerd://88b6a76384db8439ad284fa8a879858484adb98ced8499252af56e5b31246e4a",
                            "exitCode": 0,
                            "finishedAt": "2026-08-26T17:51:07Z",
                            "message": "[{\"key\":\"mapped\",\"value\":\"true\",\"type\":1}]",
                            "reason": "Completed",
                            "startedAt": "2026-08-26T17:51:05Z"
                        },
                        "terminationReason": "Completed"
                    },
                    {
                        "container": "step-create-trusted-artifact",
                        "imageID": "quay.io/konflux-ci/build-trusted-artifacts@sha256:9bd32f6bafb517b309e11a2d89365052b4ab3f1c9c23c4ffd45aff6f03960476",
                        "name": "create-trusted-artifact",
                        "provenance": {},
                        "terminated": {
                            "containerID": "containerd://08cc7facbe5b454dbf8c9bf82de85a7624c31c8665b0ba238a87d95c9b00b31b",
                            "exitCode": 0,
                            "finishedAt": "2026-08-26T17:51:09Z",
                            "message": "[{\"key\":\"mapped\",\"value\":\"true\",\"type\":1},{\"key\":\"sourceDataArtifact\",\"value\":\"oci:quay-service.quay/test-org/trusted-artifacts@sha256:796060eab5e88d382728c562b7ace0df1ccd88413715d8358f2e671a86bd3644\",\"type\":1}]",
                            "reason": "Completed",
                            "startedAt": "2026-08-26T17:51:08Z"
                        },
                        "terminationReason": "Completed"
                    }
                ],
                "taskSpec": {
                    "description": "Tekton task to apply a mapping to a Snapshot.\n\nThe purpose of this task is to merge a mapping with the components contained in a Snapshot.\nThe mapping is expected to be present in the data field of the ReleasePlanAdmission provided in\nthe `releasePlanAdmissionPath`. If the data field does not contain a `mapping` key, the original\nSnapshot is returned. If there is a `mapping` key, it is merged with the `components` key in the\nSnapshot based on component name.\n\nA `mapped` result is also returned from this task containing a simple true/false value that is\nmeant to inform whether a mapped Snapshot is being returned or the original one.\n\nThis task supports variable expansion in tag values from the mapping. The currently supported variables are:\n* \"{{ timestamp }}\" -\u003e The build-date label from the image in the format provided by timestampFormat or %s as the\n  default.\n  If the build-date label is not available, we use the Created field in the image metadata as a fallback.\n* \"{{ release_timestamp }}\" -\u003e The current time in the format provided by timestampFormat or %s as the default\n* \"{{ git_sha }}\" -\u003e The git sha that triggered the snapshot being processed\n* \"{{ git_short_sha }}\" -\u003e The git sha reduced to 7 characters\n* \"{{ digest_sha }}\" -\u003e The image digest of the respective component\n* \"{{ incrementer }}\" -\u003e Automatically finds the highest existing incremented tag in the\n  repository and generates the next sequential tag (e.g., if the highest tag is v1.0.0-2, it will generate v1.0.0-3)\n* \"{{ component-incrementer }}\" -\u003e Like {{ incrementer }}, but finds the highest existing tag\n  across ALL repositories in the component and generates the next sequential tag uniformly.\n  Use this instead of {{ incrementer }} when pushing to multiple registries to ensure every\n  registry receives the same tag (e.g., if repo-a has v1.0.0-3 and repo-b has v1.0.0-5,\n  both will receive v1.0.0-6).\n* \"{{ oci_version }}\" -\u003e The version from OCI image annotations (org.opencontainers.image.version), with fallback\n  to OCI image labels if not present in annotations (converts + to _ for tag compliance)\n\nYou can also expand image labels, e.g. \"{{ labels.mylabel }}\" -\u003e The value of image label \"mylabel\"",
                    "params": [
                        {
                            "description": "Path to the JSON string of the Snapshot spec in the config workspace to apply the mapping to",
                            "name": "snapshotPath",
                            "type": "string"
                        },
                        {
                            "description": "Path to the JSON string of the merged data to use in the data workspace",
                            "name": "dataPath",
                            "type": "string"
                        },
                        {
                            "default": "false",
                            "description": "Fail the task if the resulting snapshot contains 0 components",
                            "name": "failOnEmptyResult",
                            "type": "string"
                        },
                        {
                            "default": "empty",
                            "description": "The OCI repository where the Trusted Artifacts are stored",
                            "name": "ociStorage",
                            "type": "string"
                        },
                        {
                            "default": "1d",
                            "description": "Expiration date for the trusted artifacts created in the OCI repository. An empty string means the artifacts do not expire",
                            "name": "ociArtifactExpiresAfter",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Flag to enable debug logging in trusted artifacts. Set to a non-empty string to enable",
                            "name": "trustedArtifactsDebug",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "oras options to pass to Trusted Artifacts calls",
                            "name": "orasOptions",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Location of trusted artifacts to be used to populate data directory",
                            "name": "sourceDataArtifact",
                            "type": "string"
                        },
                        {
                            "default": "/var/workdir/release",
                            "description": "The location where data will be stored",
                            "name": "dataDir",
                            "type": "string"
                        },
                        {
                            "description": "The url to the git repo where the release-service-catalog tasks and stepactions to be used are stored",
                            "name": "taskGitUrl",
                            "type": "string"
                        },
                        {
                            "description": "The revision in the taskGitUrl repo to be used",
                            "name": "taskGitRevision",
                            "type": "string"
                        },
                        {
                            "default": "trusted-ca",
                            "description": "The name of the ConfigMap to read CA bundle data from",
                            "name": "caTrustConfigMapName",
                            "type": "string"
                        },
                        {
                            "default": "ca-bundle.crt",
                            "description": "The name of the key in the ConfigMap that contains the CA bundle data",
                            "name": "caTrustConfigMapKey",
                            "type": "string"
                        },
                        {
                            "default": "false",
                            "description": "When \"true\", for each repository the resolved {{ timestamp }} value is added to the list of\ntags after translation (deduplicated). Fails if timestamp is empty. Only pipelines referencing\nthe check-labels task should set this to \"true\"\n",
                            "name": "addImplicitTimestampTag",
                            "type": "string"
                        },
                        {
                            "default": "/mnt/trusted-ca/ca-bundle.crt",
                            "description": "Path to CA certificate bundle for TLS verification with self-signed certificates",
                            "name": "caCertPath",
                            "type": "string"
                        }
                    ],
                    "results": [
                        {
                            "description": "A true/false value depicting whether or not the snapshot was mapped.",
                            "name": "mapped",
                            "type": "string"
                        },
                        {
                            "description": "Produced trusted data artifact",
                            "name": "sourceDataArtifact",
                            "type": "string"
                        }
                    ],
                    "stepTemplate": {
                        "computeResources": {},
                        "env": [
                            {
                                "name": "IMAGE_EXPIRES_AFTER",
                                "value": "1d"
                            },
                            {
                                "name": "ORAS_OPTIONS"
                            },
                            {
                                "name": "DEBUG"
                            }
                        ],
                        "securityContext": {
                            "runAsUser": 1001
                        },
                        "volumeMounts": [
                            {
                                "mountPath": "/var/workdir",
                                "name": "workdir"
                            },
                            {
                                "mountPath": "/mnt/trusted-ca",
                                "name": "trusted-ca",
                                "readOnly": true
                            }
                        ]
                    },
                    "steps": [
                        {
                            "args": [
                                "use",
                                "oci:quay-service.quay/test-org/trusted-artifacts@sha256:37145077f122f4156850e48a6e6eacb7c486d6f73e5dd8a1ef21c4652768fcce=/var/workdir/release"
                            ],
                            "computeResources": {
                                "limits": {
                                    "memory": "64Mi"
                                },
                                "requests": {
                                    "cpu": "30m",
                                    "memory": "64Mi"
                                }
                            },
                            "env": [
                                {
                                    "name": "HOME",
                                    "value": "/tekton/home"
                                },
                                {
                                    "name": "ORAS_OPTIONS"
                                },
                                {
                                    "name": "CA_FILE",
                                    "value": "/mnt/trusted-ca/ca-bundle.crt"
                                }
                            ],
                            "image": "quay.io/konflux-ci/build-trusted-artifacts@sha256:9bd32f6bafb517b309e11a2d89365052b4ab3f1c9c23c4ffd45aff6f03960476",
                            "name": "use-trusted-artifact"
                        },
                        {
                            "args": [
                                "--snapshot-file",
                                "/var/workdir/release/add9a4ba-a70a-422c-b994-67c1bcbfd6b8/snapshot_spec.json",
                                "--data-file",
                                "/var/workdir/release/add9a4ba-a70a-422c-b994-67c1bcbfd6b8/data.json",
                                "--fail-on-empty-result",
                                "true",
                                "--add-implicit-timestamp-tag",
                                "false"
                            ],
                            "command": [
                                "python3",
                                "/home/scripts/python/tasks/managed/apply_mapping.py"
                            ],
                            "computeResources": {
                                "limits": {
                                    "memory": "128Mi"
                                },
                                "requests": {
                                    "cpu": "1",
                                    "memory": "128Mi"
                                }
                            },
                            "env": [
                                {
                                    "name": "RESULT_MAPPED",
                                    "value": "/tekton/results/mapped"
                                },
                                {
                                    "name": "CA_CERT_PATH",
                                    "value": "/mnt/trusted-ca/ca-bundle.crt"
                                }
                            ],
                            "image": "quay.io/konflux-ci/release-service-utils@sha256:4eee3d7d6e914f9f11a0a8f23b989f72d94cf70332e658ee87b1bb171a2b1cf6",
                            "name": "apply-mapping"
                        },
                        {
                            "args": [
                                "create",
                                "--store",
                                "quay-service.quay/test-org/trusted-artifacts",
                                "/tekton/results/sourceDataArtifact=/var/workdir/release"
                            ],
                            "computeResources": {
                                "limits": {
                                    "memory": "128Mi"
                                },
                                "requests": {
                                    "cpu": "250m",
                                    "memory": "128Mi"
                                }
                            },
                            "env": [
                                {
                                    "name": "HOME",
                                    "value": "/tekton/home"
                                },
                                {
                                    "name": "ORAS_OPTIONS"
                                },
                                {
                                    "name": "CA_FILE",
                                    "value": "/mnt/trusted-ca/ca-bundle.crt"
                                }
                            ],
                            "image": "quay.io/konflux-ci/build-trusted-artifacts@sha256:9bd32f6bafb517b309e11a2d89365052b4ab3f1c9c23c4ffd45aff6f03960476",
                            "name": "create-trusted-artifact"
                        }
                    ],
                    "volumes": [
                        {
                            "emptyDir": {},
                            "name": "workdir"
                        },
                        {
                            "configMap": {
                                "items": [
                                    {
                                        "key": "ca-bundle.crt",
                                        "path": "ca-bundle.crt"
                                    }
                                ],
                                "name": "trusted-ca",
                                "optional": true
                            },
                            "name": "trusted-ca"
                        }
                    ]
                }
            }
        },
        {
            "apiVersion": "tekton.dev/v1",
            "kind": "TaskRun",
            "metadata": {
                "annotations": {
                    "chains.tekton.dev/signed": "true",
                    "operator-sdk/primary-resource": "ex-registry-sh-869ae581/snapshot-sample-869ae581-bsrlj",
                    "operator-sdk/primary-resource-type": "Release.appstudio.redhat.com",
                    "pipeline.tekton.dev/release": "70f7308",
                    "results.tekton.dev/childReadyForDeletion": "true",
                    "results.tekton.dev/record": "ex-registry-sh-managed-869ae581/results/add9a4ba-a70a-422c-b994-67c1bcbfd6b8/records/e95afc6d-7daa-4d0d-94ab-5859f2e570e4",
                    "results.tekton.dev/result": "ex-registry-sh-managed-869ae581/results/add9a4ba-a70a-422c-b994-67c1bcbfd6b8",
                    "results.tekton.dev/stored": "true",
                    "tekton.dev/pipelines.minVersion": "0.12.1",
                    "tekton.dev/tags": "release"
                },
                "creationTimestamp": "2026-08-26T17:48:42Z",
                "finalizers": [
                    "chains.tekton.dev/taskrun",
                    "results.tekton.dev/taskrun"
                ],
                "generation": 1,
                "labels": {
                    "app.kubernetes.io/managed-by": "tekton-pipelines",
                    "appstudio.openshift.io/application": "appstudio",
                    "appstudio.openshift.io/service": "release",
                    "appstudio.openshift.io/snapshot": "snapshot-sample-869ae581",
                    "pipelines.appstudio.openshift.io/type": "managed",
                    "release.appstudio.openshift.io/attempt": "0",
                    "release.appstudio.openshift.io/name": "snapshot-sample-869ae581-bsrlj",
                    "release.appstudio.openshift.io/namespace": "ex-registry-sh-869ae581",
                    "tekton.dev/memberOf": "tasks",
                    "tekton.dev/pipeline": "push-to-external-registry",
                    "tekton.dev/pipelineRun": "managed-hgppl",
                    "tekton.dev/pipelineRunUID": "add9a4ba-a70a-422c-b994-67c1bcbfd6b8",
                    "tekton.dev/pipelineTask": "check-data-keys",
                    "tekton.dev/task": "check-data-keys"
                },
                "name": "managed-hgppl-check-data-keys",
                "namespace": "ex-registry-sh-managed-869ae581",
                "ownerReferences": [
                    {
                        "apiVersion": "tekton.dev/v1",
                        "blockOwnerDeletion": true,
                        "controller": true,
                        "kind": "PipelineRun",
                        "name": "managed-hgppl",
                        "uid": "add9a4ba-a70a-422c-b994-67c1bcbfd6b8"
                    }
                ],
                "resourceVersion": "10121",
                "uid": "e95afc6d-7daa-4d0d-94ab-5859f2e570e4"
            },
            "spec": {
                "params": [
                    {
                        "name": "dataPath",
                        "value": "add9a4ba-a70a-422c-b994-67c1bcbfd6b8/data.json"
                    },
                    {
                        "name": "systems",
                        "value": "[\n  {\"systemName\": \"mapping\", \"dynamic\": false}\n]\n"
                    },
                    {
                        "name": "ociStorage",
                        "value": "quay-service.quay/test-org/trusted-artifacts"
                    },
                    {
                        "name": "sourceDataArtifact",
                        "value": "oci:quay-service.quay/test-org/trusted-artifacts@sha256:fb7aea1a4762e1869e9f188c03e0db2cad0ef55d35963b0134f5b2bf5f30fce0"
                    },
                    {
                        "name": "dataDir",
                        "value": "/var/workdir/release"
                    },
                    {
                        "name": "trustedArtifactsDebug",
                        "value": ""
                    },
                    {
                        "name": "taskGitUrl",
                        "value": "https://github.com/swickersh/release-service-catalog"
                    },
                    {
                        "name": "taskGitRevision",
                        "value": "4d8f5d74eb4405ac637042fde05a3330b26bb548"
                    }
                ],
                "serviceAccountName": "release-service-account",
                "taskRef": {
                    "params": [
                        {
                            "name": "url",
                            "value": "https://github.com/swickersh/release-service-catalog"
                        },
                        {
                            "name": "revision",
                            "value": "4d8f5d74eb4405ac637042fde05a3330b26bb548"
                        },
                        {
                            "name": "pathInRepo",
                            "value": "tasks/managed/check-data-keys/check-data-keys.yaml"
                        }
                    ],
                    "resolver": "git"
                },
                "timeout": "3h50m0s"
            },
            "status": {
                "artifacts": {},
                "completionTime": "2026-08-26T17:50:27Z",
                "conditions": [
                    {
                        "lastTransitionTime": "2026-08-26T17:50:27Z",
                        "message": "All Steps have completed executing",
                        "reason": "Succeeded",
                        "status": "True",
                        "type": "Succeeded"
                    }
                ],
                "podName": "managed-hgppl-check-data-keys-pod",
                "provenance": {
                    "featureFlags": {
                        "awaitSidecarReadiness": true,
                        "coschedule": "workspaces",
                        "enableAPIFields": "beta",
                        "enableProvenanceInStatus": true,
                        "enforceNonfalsifiability": "none",
                        "maxResultSize": 4096,
                        "resultExtractionMethod": "termination-message",
                        "runningInEnvWithInjectedSidecars": true,
                        "sendCloudEventsForRuns": true,
                        "verificationNoMatchPolicy": "ignore"
                    },
                    "refSource": {
                        "digest": {
                            "sha1": "4d8f5d74eb4405ac637042fde05a3330b26bb548"
                        },
                        "entryPoint": "tasks/managed/check-data-keys/check-data-keys.yaml",
                        "uri": "git+https://github.com/swickersh/release-service-catalog"
                    }
                },
                "results": [
                    {
                        "name": "sourceDataArtifact",
                        "type": "string",
                        "value": "oci:quay-service.quay/test-org/trusted-artifacts@sha256:c80724729047e9950013d8c9dceccf849afe28d412c77646c23932d8fd4563d0"
                    }
                ],
                "startTime": "2026-08-26T17:48:42Z",
                "steps": [
                    {
                        "container": "step-use-trusted-artifact",
                        "imageID": "quay.io/konflux-ci/build-trusted-artifacts@sha256:9bd32f6bafb517b309e11a2d89365052b4ab3f1c9c23c4ffd45aff6f03960476",
                        "name": "use-trusted-artifact",
                        "provenance": {},
                        "terminated": {
                            "containerID": "containerd://c925218fa26890f3fcac23cdc3c742f6972f1df019377812c1319ba8345a7fa9",
                            "exitCode": 0,
                            "finishedAt": "2026-08-26T17:50:20Z",
                            "reason": "Completed",
                            "startedAt": "2026-08-26T17:50:20Z"
                        },
                        "terminationReason": "Completed"
                    },
                    {
                        "container": "step-check-data-keys",
                        "imageID": "quay.io/konflux-ci/release-service-utils@sha256:282c23415a9995ab3fd6eb79dd314e84aed9b51e96ac3caaa34562c08eb7cc51",
                        "name": "check-data-keys",
                        "provenance": {},
                        "terminated": {
                            "containerID": "containerd://c52cd8c472db26f21a1076662b982e0dc019151ef601a109280d3e14463f2edf",
                            "exitCode": 0,
                            "finishedAt": "2026-08-26T17:50:21Z",
                            "reason": "Completed",
                            "startedAt": "2026-08-26T17:50:20Z"
                        },
                        "terminationReason": "Completed"
                    },
                    {
                        "container": "step-create-trusted-artifact",
                        "imageID": "quay.io/konflux-ci/build-trusted-artifacts@sha256:9bd32f6bafb517b309e11a2d89365052b4ab3f1c9c23c4ffd45aff6f03960476",
                        "name": "create-trusted-artifact",
                        "provenance": {},
                        "terminated": {
                            "containerID": "containerd://5094c58a6520dc265426146d123865276f3b45b36dbbf9c5a12d47b62f2b329f",
                            "exitCode": 0,
                            "finishedAt": "2026-08-26T17:50:23Z",
                            "message": "[{\"key\":\"sourceDataArtifact\",\"value\":\"oci:quay-service.quay/test-org/trusted-artifacts@sha256:c80724729047e9950013d8c9dceccf849afe28d412c77646c23932d8fd4563d0\",\"type\":1}]",
                            "reason": "Completed",
                            "startedAt": "2026-08-26T17:50:22Z"
                        },
                        "terminationReason": "Completed"
                    }
                ],
                "taskSpec": {
                    "description": "Tekton task that validates data keys against a schema to ensure that all required keys for a system(s) are present\nand correctly formatted. The system(s) passed into the `systems` parameter become required.\nThe schema validation also applies to all data passed into the `dataPath` parameter,\nmeaning all the data keys must be allowed and formatted correctly.\n\nFor example, if `releaseNotes` is passed as a system and the data file does not have all the required\nreleaseNotes keys, the schema will give validation errors, and the task will fail.\n\nThe validation schema is bundled in the release-service-utils image at\n`/home/schemas/dataKeys.json`.",
                    "params": [
                        {
                            "description": "Path to the JSON string of the merged data to use",
                            "name": "dataPath",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "The systems to check that all data keys are present for",
                            "name": "systems",
                            "type": "string"
                        },
                        {
                            "default": "empty",
                            "description": "The OCI repository where the Trusted Artifacts are stored",
                            "name": "ociStorage",
                            "type": "string"
                        },
                        {
                            "default": "1d",
                            "description": "Expiration date for the trusted artifacts created in the OCI repository. An empty string means the artifacts do not expire",
                            "name": "ociArtifactExpiresAfter",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Flag to enable debug logging in trusted artifacts. Set to a non-empty string to enable",
                            "name": "trustedArtifactsDebug",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "oras options to pass to Trusted Artifacts calls",
                            "name": "orasOptions",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Location of trusted artifacts to be used to populate data directory",
                            "name": "sourceDataArtifact",
                            "type": "string"
                        },
                        {
                            "default": "/var/workdir/release",
                            "description": "The location where data will be stored",
                            "name": "dataDir",
                            "type": "string"
                        },
                        {
                            "description": "The url to the git repo where the release-service-catalog tasks and stepactions to be used are stored",
                            "name": "taskGitUrl",
                            "type": "string"
                        },
                        {
                            "description": "The revision in the taskGitUrl repo to be used",
                            "name": "taskGitRevision",
                            "type": "string"
                        },
                        {
                            "default": "trusted-ca",
                            "description": "The name of the ConfigMap to read CA bundle data from",
                            "name": "caTrustConfigMapName",
                            "type": "string"
                        },
                        {
                            "default": "ca-bundle.crt",
                            "description": "The name of the key in the ConfigMap that contains the CA bundle data",
                            "name": "caTrustConfigMapKey",
                            "type": "string"
                        },
                        {
                            "default": "/mnt/trusted-ca/ca-bundle.crt",
                            "description": "Path to CA certificate bundle for TLS verification with self-signed certificates",
                            "name": "caCertPath",
                            "type": "string"
                        }
                    ],
                    "results": [
                        {
                            "description": "Produced trusted data artifact",
                            "name": "sourceDataArtifact",
                            "type": "string"
                        }
                    ],
                    "stepTemplate": {
                        "computeResources": {},
                        "env": [
                            {
                                "name": "IMAGE_EXPIRES_AFTER",
                                "value": "1d"
                            },
                            {
                                "name": "ORAS_OPTIONS"
                            },
                            {
                                "name": "DEBUG"
                            }
                        ],
                        "securityContext": {
                            "runAsUser": 1001
                        },
                        "volumeMounts": [
                            {
                                "mountPath": "/var/workdir",
                                "name": "workdir"
                            },
                            {
                                "mountPath": "/mnt/trusted-ca",
                                "name": "trusted-ca",
                                "readOnly": true
                            }
                        ]
                    },
                    "steps": [
                        {
                            "args": [
                                "use",
                                "oci:quay-service.quay/test-org/trusted-artifacts@sha256:fb7aea1a4762e1869e9f188c03e0db2cad0ef55d35963b0134f5b2bf5f30fce0=/var/workdir/release"
                            ],
                            "computeResources": {
                                "limits": {
                                    "memory": "64Mi"
                                },
                                "requests": {
                                    "cpu": "30m",
                                    "memory": "64Mi"
                                }
                            },
                            "env": [
                                {
                                    "name": "HOME",
                                    "value": "/tekton/home"
                                },
                                {
                                    "name": "ORAS_OPTIONS"
                                },
                                {
                                    "name": "CA_FILE",
                                    "value": "/mnt/trusted-ca/ca-bundle.crt"
                                }
                            ],
                            "image": "quay.io/konflux-ci/build-trusted-artifacts@sha256:9bd32f6bafb517b309e11a2d89365052b4ab3f1c9c23c4ffd45aff6f03960476",
                            "name": "use-trusted-artifact"
                        },
                        {
                            "command": [
                                "/home/scripts/python/tasks/managed/check_data_keys.py"
                            ],
                            "computeResources": {
                                "limits": {
                                    "memory": "64Mi"
                                },
                                "requests": {
                                    "cpu": "10m",
                                    "memory": "64Mi"
                                }
                            },
                            "env": [
                                {
                                    "name": "PARAM_DATA_DIR",
                                    "value": "/var/workdir/release"
                                },
                                {
                                    "name": "PARAM_DATA_PATH",
                                    "value": "add9a4ba-a70a-422c-b994-67c1bcbfd6b8/data.json"
                                },
                                {
                                    "name": "PARAM_SYSTEMS",
                                    "value": "[\n  {\"systemName\": \"mapping\", \"dynamic\": false}\n]\n"
                                }
                            ],
                            "image": "quay.io/konflux-ci/release-service-utils@sha256:282c23415a9995ab3fd6eb79dd314e84aed9b51e96ac3caaa34562c08eb7cc51",
                            "name": "check-data-keys"
                        },
                        {
                            "args": [
                                "create",
                                "--store",
                                "quay-service.quay/test-org/trusted-artifacts",
                                "/tekton/results/sourceDataArtifact=/var/workdir/release"
                            ],
                            "computeResources": {
                                "limits": {
                                    "memory": "128Mi"
                                },
                                "requests": {
                                    "cpu": "250m",
                                    "memory": "128Mi"
                                }
                            },
                            "env": [
                                {
                                    "name": "HOME",
                                    "value": "/tekton/home"
                                },
                                {
                                    "name": "ORAS_OPTIONS"
                                },
                                {
                                    "name": "CA_FILE",
                                    "value": "/mnt/trusted-ca/ca-bundle.crt"
                                }
                            ],
                            "image": "quay.io/konflux-ci/build-trusted-artifacts@sha256:9bd32f6bafb517b309e11a2d89365052b4ab3f1c9c23c4ffd45aff6f03960476",
                            "name": "create-trusted-artifact"
                        }
                    ],
                    "volumes": [
                        {
                            "emptyDir": {},
                            "name": "workdir"
                        },
                        {
                            "configMap": {
                                "items": [
                                    {
                                        "key": "ca-bundle.crt",
                                        "path": "ca-bundle.crt"
                                    }
                                ],
                                "name": "trusted-ca",
                                "optional": true
                            },
                            "name": "trusted-ca"
                        }
                    ]
                }
            }
        },
        {
            "apiVersion": "tekton.dev/v1",
            "kind": "TaskRun",
            "metadata": {
                "annotations": {
                    "chains.tekton.dev/signed": "true",
                    "operator-sdk/primary-resource": "ex-registry-sh-869ae581/snapshot-sample-869ae581-bsrlj",
                    "operator-sdk/primary-resource-type": "Release.appstudio.redhat.com",
                    "pipeline.tekton.dev/release": "70f7308",
                    "results.tekton.dev/childReadyForDeletion": "true",
                    "results.tekton.dev/record": "ex-registry-sh-managed-869ae581/results/add9a4ba-a70a-422c-b994-67c1bcbfd6b8/records/81094159-39ab-4590-b38b-be930d5dc9f3",
                    "results.tekton.dev/result": "ex-registry-sh-managed-869ae581/results/add9a4ba-a70a-422c-b994-67c1bcbfd6b8",
                    "results.tekton.dev/stored": "true",
                    "tekton.dev/pipelines.minVersion": "0.12.1",
                    "tekton.dev/tags": "release"
                },
                "creationTimestamp": "2026-08-26T17:47:59Z",
                "finalizers": [
                    "results.tekton.dev/taskrun",
                    "chains.tekton.dev/taskrun"
                ],
                "generation": 1,
                "labels": {
                    "app.kubernetes.io/managed-by": "tekton-pipelines",
                    "appstudio.openshift.io/application": "appstudio",
                    "appstudio.openshift.io/service": "release",
                    "appstudio.openshift.io/snapshot": "snapshot-sample-869ae581",
                    "pipelines.appstudio.openshift.io/type": "managed",
                    "release.appstudio.openshift.io/attempt": "0",
                    "release.appstudio.openshift.io/name": "snapshot-sample-869ae581-bsrlj",
                    "release.appstudio.openshift.io/namespace": "ex-registry-sh-869ae581",
                    "tekton.dev/memberOf": "tasks",
                    "tekton.dev/pipeline": "push-to-external-registry",
                    "tekton.dev/pipelineRun": "managed-hgppl",
                    "tekton.dev/pipelineRunUID": "add9a4ba-a70a-422c-b994-67c1bcbfd6b8",
                    "tekton.dev/pipelineTask": "collect-data",
                    "tekton.dev/task": "collect-data"
                },
                "name": "managed-hgppl-collect-data",
                "namespace": "ex-registry-sh-managed-869ae581",
                "ownerReferences": [
                    {
                        "apiVersion": "tekton.dev/v1",
                        "blockOwnerDeletion": true,
                        "controller": true,
                        "kind": "PipelineRun",
                        "name": "managed-hgppl",
                        "uid": "add9a4ba-a70a-422c-b994-67c1bcbfd6b8"
                    }
                ],
                "resourceVersion": "9067",
                "uid": "81094159-39ab-4590-b38b-be930d5dc9f3"
            },
            "spec": {
                "params": [
                    {
                        "name": "release",
                        "value": "ex-registry-sh-869ae581/snapshot-sample-869ae581-bsrlj"
                    },
                    {
                        "name": "releasePlan",
                        "value": "ex-registry-sh-869ae581/source-releaseplan"
                    },
                    {
                        "name": "releasePlanAdmission",
                        "value": "ex-registry-sh-managed-869ae581/demo"
                    },
                    {
                        "name": "releaseServiceConfig",
                        "value": "release-service/release-service-config"
                    },
                    {
                        "name": "snapshot",
                        "value": "ex-registry-sh-869ae581/snapshot-sample-869ae581"
                    },
                    {
                        "name": "subdirectory",
                        "value": "add9a4ba-a70a-422c-b994-67c1bcbfd6b8"
                    },
                    {
                        "name": "ociStorage",
                        "value": "quay-service.quay/test-org/trusted-artifacts"
                    },
                    {
                        "name": "dataDir",
                        "value": "/var/workdir/release"
                    },
                    {
                        "name": "trustedArtifactsDebug",
                        "value": ""
                    },
                    {
                        "name": "taskGitUrl",
                        "value": "https://github.com/swickersh/release-service-catalog"
                    },
                    {
                        "name": "taskGitRevision",
                        "value": "4d8f5d74eb4405ac637042fde05a3330b26bb548"
                    }
                ],
                "serviceAccountName": "release-service-account",
                "taskRef": {
                    "params": [
                        {
                            "name": "url",
                            "value": "https://github.com/swickersh/release-service-catalog"
                        },
                        {
                            "name": "revision",
                            "value": "4d8f5d74eb4405ac637042fde05a3330b26bb548"
                        },
                        {
                            "name": "pathInRepo",
                            "value": "tasks/managed/collect-data/collect-data.yaml"
                        }
                    ],
                    "resolver": "git"
                },
                "timeout": "3h50m0s"
            },
            "status": {
                "artifacts": {},
                "completionTime": "2026-08-26T17:48:41Z",
                "conditions": [
                    {
                        "lastTransitionTime": "2026-08-26T17:48:41Z",
                        "message": "All Steps have completed executing",
                        "reason": "Succeeded",
                        "status": "True",
                        "type": "Succeeded"
                    }
                ],
                "podName": "managed-hgppl-collect-data-pod",
                "provenance": {
                    "featureFlags": {
                        "awaitSidecarReadiness": true,
                        "coschedule": "workspaces",
                        "enableAPIFields": "beta",
                        "enableProvenanceInStatus": true,
                        "enforceNonfalsifiability": "none",
                        "maxResultSize": 4096,
                        "resultExtractionMethod": "termination-message",
                        "runningInEnvWithInjectedSidecars": true,
                        "sendCloudEventsForRuns": true,
                        "verificationNoMatchPolicy": "ignore"
                    },
                    "refSource": {
                        "digest": {
                            "sha1": "4d8f5d74eb4405ac637042fde05a3330b26bb548"
                        },
                        "entryPoint": "tasks/managed/collect-data/collect-data.yaml",
                        "uri": "git+https://github.com/swickersh/release-service-catalog"
                    }
                },
                "results": [
                    {
                        "name": "data",
                        "type": "string",
                        "value": "add9a4ba-a70a-422c-b994-67c1bcbfd6b8/data.json"
                    },
                    {
                        "name": "release",
                        "type": "string",
                        "value": "add9a4ba-a70a-422c-b994-67c1bcbfd6b8/release.json"
                    },
                    {
                        "name": "releasePipelineMetadata",
                        "type": "string",
                        "value": "{\"org\":\"swickersh\",\"repo\":\"release-service-catalog\",\"revision\":\"4d8f5d74eb4405ac637042fde05a3330b26bb548\",\"pathinrepo\":\"pipelines/managed/push-to-external-registry/push-to-external-registry.yaml\",\"sha\":\"4d8f5d74eb4405ac637042fde05a3330b26bb548\"}\n"
                    },
                    {
                        "name": "releasePlan",
                        "type": "string",
                        "value": "add9a4ba-a70a-422c-b994-67c1bcbfd6b8/release_plan.json"
                    },
                    {
                        "name": "releasePlanAdmission",
                        "type": "string",
                        "value": "add9a4ba-a70a-422c-b994-67c1bcbfd6b8/release_plan_admission.json"
                    },
                    {
                        "name": "releaseServiceConfig",
                        "type": "string",
                        "value": "add9a4ba-a70a-422c-b994-67c1bcbfd6b8/release_service_config.json"
                    },
                    {
                        "name": "resultsDir",
                        "type": "string",
                        "value": "add9a4ba-a70a-422c-b994-67c1bcbfd6b8/results"
                    },
                    {
                        "name": "singleComponentMode",
                        "type": "string",
                        "value": "false"
                    },
                    {
                        "name": "snapshotBuildId",
                        "type": "string",
                        "value": ""
                    },
                    {
                        "name": "snapshotName",
                        "type": "string",
                        "value": "snapshot-sample-869ae581"
                    },
                    {
                        "name": "snapshotNamespace",
                        "type": "string",
                        "value": "ex-registry-sh-869ae581"
                    },
                    {
                        "name": "snapshotSpec",
                        "type": "string",
                        "value": "add9a4ba-a70a-422c-b994-67c1bcbfd6b8/snapshot_spec.json"
                    },
                    {
                        "name": "subdirectory",
                        "type": "string",
                        "value": "add9a4ba-a70a-422c-b994-67c1bcbfd6b8"
                    },
                    {
                        "name": "sourceDataArtifact",
                        "type": "string",
                        "value": "oci:quay-service.quay/test-org/trusted-artifacts@sha256:fb7aea1a4762e1869e9f188c03e0db2cad0ef55d35963b0134f5b2bf5f30fce0"
                    }
                ],
                "startTime": "2026-08-26T17:47:59Z",
                "steps": [
                    {
                        "container": "step-collect-data",
                        "imageID": "quay.io/konflux-ci/release-service-utils@sha256:440c27f13adab931460a9371df82d3757b77f7ccc1b7604d737e0c78760a95c9",
                        "name": "collect-data",
                        "provenance": {},
                        "terminated": {
                            "containerID": "containerd://fec8e57bb69290557eecf413b396fb5c7d7696524bcd22b50cdddc5cae8fed39",
                            "exitCode": 0,
                            "finishedAt": "2026-08-26T17:48:39Z",
                            "message": "[{\"key\":\"data\",\"value\":\"add9a4ba-a70a-422c-b994-67c1bcbfd6b8/data.json\",\"type\":1},{\"key\":\"release\",\"value\":\"add9a4ba-a70a-422c-b994-67c1bcbfd6b8/release.json\",\"type\":1},{\"key\":\"releasePipelineMetadata\",\"value\":\"{\\\"org\\\":\\\"swickersh\\\",\\\"repo\\\":\\\"release-service-catalog\\\",\\\"revision\\\":\\\"4d8f5d74eb4405ac637042fde05a3330b26bb548\\\",\\\"pathinrepo\\\":\\\"pipelines/managed/push-to-external-registry/push-to-external-registry.yaml\\\",\\\"sha\\\":\\\"4d8f5d74eb4405ac637042fde05a3330b26bb548\\\"}\\n\",\"type\":1},{\"key\":\"releasePlan\",\"value\":\"add9a4ba-a70a-422c-b994-67c1bcbfd6b8/release_plan.json\",\"type\":1},{\"key\":\"releasePlanAdmission\",\"value\":\"add9a4ba-a70a-422c-b994-67c1bcbfd6b8/release_plan_admission.json\",\"type\":1},{\"key\":\"releaseServiceConfig\",\"value\":\"add9a4ba-a70a-422c-b994-67c1bcbfd6b8/release_service_config.json\",\"type\":1},{\"key\":\"resultsDir\",\"value\":\"add9a4ba-a70a-422c-b994-67c1bcbfd6b8/results\",\"type\":1},{\"key\":\"singleComponentMode\",\"value\":\"false\",\"type\":1},{\"key\":\"snapshotBuildId\",\"value\":\"\",\"type\":1},{\"key\":\"snapshotName\",\"value\":\"snapshot-sample-869ae581\",\"type\":1},{\"key\":\"snapshotNamespace\",\"value\":\"ex-registry-sh-869ae581\",\"type\":1},{\"key\":\"snapshotSpec\",\"value\":\"add9a4ba-a70a-422c-b994-67c1bcbfd6b8/snapshot_spec.json\",\"type\":1},{\"key\":\"subdirectory\",\"value\":\"add9a4ba-a70a-422c-b994-67c1bcbfd6b8\",\"type\":1}]",
                            "reason": "Completed",
                            "startedAt": "2026-08-26T17:48:38Z"
                        },
                        "terminationReason": "Completed"
                    },
                    {
                        "container": "step-check-data-key-sources",
                        "imageID": "quay.io/konflux-ci/release-service-utils@sha256:440c27f13adab931460a9371df82d3757b77f7ccc1b7604d737e0c78760a95c9",
                        "name": "check-data-key-sources",
                        "provenance": {},
                        "terminated": {
                            "containerID": "containerd://7b01a46bd63894caa58b68ea4e3c5e5d8135d7035b095a104141fab76f400345",
                            "exitCode": 0,
                            "finishedAt": "2026-08-26T17:48:40Z",
                            "message": "[{\"key\":\"data\",\"value\":\"add9a4ba-a70a-422c-b994-67c1bcbfd6b8/data.json\",\"type\":1},{\"key\":\"release\",\"value\":\"add9a4ba-a70a-422c-b994-67c1bcbfd6b8/release.json\",\"type\":1},{\"key\":\"releasePipelineMetadata\",\"value\":\"{\\\"org\\\":\\\"swickersh\\\",\\\"repo\\\":\\\"release-service-catalog\\\",\\\"revision\\\":\\\"4d8f5d74eb4405ac637042fde05a3330b26bb548\\\",\\\"pathinrepo\\\":\\\"pipelines/managed/push-to-external-registry/push-to-external-registry.yaml\\\",\\\"sha\\\":\\\"4d8f5d74eb4405ac637042fde05a3330b26bb548\\\"}\\n\",\"type\":1},{\"key\":\"releasePlan\",\"value\":\"add9a4ba-a70a-422c-b994-67c1bcbfd6b8/release_plan.json\",\"type\":1},{\"key\":\"releasePlanAdmission\",\"value\":\"add9a4ba-a70a-422c-b994-67c1bcbfd6b8/release_plan_admission.json\",\"type\":1},{\"key\":\"releaseServiceConfig\",\"value\":\"add9a4ba-a70a-422c-b994-67c1bcbfd6b8/release_service_config.json\",\"type\":1},{\"key\":\"resultsDir\",\"value\":\"add9a4ba-a70a-422c-b994-67c1bcbfd6b8/results\",\"type\":1},{\"key\":\"singleComponentMode\",\"value\":\"false\",\"type\":1},{\"key\":\"snapshotBuildId\",\"value\":\"\",\"type\":1},{\"key\":\"snapshotName\",\"value\":\"snapshot-sample-869ae581\",\"type\":1},{\"key\":\"snapshotNamespace\",\"value\":\"ex-registry-sh-869ae581\",\"type\":1},{\"key\":\"snapshotSpec\",\"value\":\"add9a4ba-a70a-422c-b994-67c1bcbfd6b8/snapshot_spec.json\",\"type\":1},{\"key\":\"subdirectory\",\"value\":\"add9a4ba-a70a-422c-b994-67c1bcbfd6b8\",\"type\":1}]",
                            "reason": "Completed",
                            "startedAt": "2026-08-26T17:48:40Z"
                        },
                        "terminationReason": "Completed"
                    },
                    {
                        "container": "step-create-trusted-artifact",
                        "imageID": "quay.io/konflux-ci/build-trusted-artifacts@sha256:9bd32f6bafb517b309e11a2d89365052b4ab3f1c9c23c4ffd45aff6f03960476",
                        "name": "create-trusted-artifact",
                        "provenance": {},
                        "terminated": {
                            "containerID": "containerd://faf87cf0e39ff2ef25d5409768edb20ee76773646b2991044224b8be75d892b4",
                            "exitCode": 0,
                            "finishedAt": "2026-08-26T17:48:41Z",
                            "message": "[{\"key\":\"data\",\"value\":\"add9a4ba-a70a-422c-b994-67c1bcbfd6b8/data.json\",\"type\":1},{\"key\":\"release\",\"value\":\"add9a4ba-a70a-422c-b994-67c1bcbfd6b8/release.json\",\"type\":1},{\"key\":\"releasePipelineMetadata\",\"value\":\"{\\\"org\\\":\\\"swickersh\\\",\\\"repo\\\":\\\"release-service-catalog\\\",\\\"revision\\\":\\\"4d8f5d74eb4405ac637042fde05a3330b26bb548\\\",\\\"pathinrepo\\\":\\\"pipelines/managed/push-to-external-registry/push-to-external-registry.yaml\\\",\\\"sha\\\":\\\"4d8f5d74eb4405ac637042fde05a3330b26bb548\\\"}\\n\",\"type\":1},{\"key\":\"releasePlan\",\"value\":\"add9a4ba-a70a-422c-b994-67c1bcbfd6b8/release_plan.json\",\"type\":1},{\"key\":\"releasePlanAdmission\",\"value\":\"add9a4ba-a70a-422c-b994-67c1bcbfd6b8/release_plan_admission.json\",\"type\":1},{\"key\":\"releaseServiceConfig\",\"value\":\"add9a4ba-a70a-422c-b994-67c1bcbfd6b8/release_service_config.json\",\"type\":1},{\"key\":\"resultsDir\",\"value\":\"add9a4ba-a70a-422c-b994-67c1bcbfd6b8/results\",\"type\":1},{\"key\":\"singleComponentMode\",\"value\":\"false\",\"type\":1},{\"key\":\"snapshotBuildId\",\"value\":\"\",\"type\":1},{\"key\":\"snapshotName\",\"value\":\"snapshot-sample-869ae581\",\"type\":1},{\"key\":\"snapshotNamespace\",\"value\":\"ex-registry-sh-869ae581\",\"type\":1},{\"key\":\"snapshotSpec\",\"value\":\"add9a4ba-a70a-422c-b994-67c1bcbfd6b8/snapshot_spec.json\",\"type\":1},{\"key\":\"sourceDataArtifact\",\"value\":\"oci:quay-service.quay/test-org/trusted-artifacts@sha256:fb7aea1a4762e1869e9f188c03e0db2cad0ef55d35963b0134f5b2bf5f30fce0\",\"type\":1},{\"key\":\"subdirectory\",\"value\":\"add9a4ba-a70a-422c-b994-67c1bcbfd6b8\",\"type\":1}]",
                            "reason": "Completed",
                            "startedAt": "2026-08-26T17:48:40Z"
                        },
                        "terminationReason": "Completed"
                    }
                ],
                "taskSpec": {
                    "description": "Tekton task to collect the information added to the data field of the release resources.\n\nThe purpose of this task is to collect all the data and supply it to the other task in the pipeline by creating\na json file called `data.json` in the workspace.\n\nThis task also stores the passed resources as json files in a workspace.\n\nThe parameters to this task are lowercase instead of camelCase because they are passed from the operator, and the\noperator passes them as lowercase.\n\nA task result is returned for each resource with the relative path to the stored JSON for it in the workspace.\n\nFinally, the task checks that the keys from the correct resource (a key that should come from the\nReleasePlanAdmission should not be present in the Release data section).",
                    "params": [
                        {
                            "description": "The namespaced name of the Release",
                            "name": "release",
                            "type": "string"
                        },
                        {
                            "description": "The namespaced name of the ReleasePlan",
                            "name": "releasePlan",
                            "type": "string"
                        },
                        {
                            "description": "The namespaced name of the ReleasePlanAdmission",
                            "name": "releasePlanAdmission",
                            "type": "string"
                        },
                        {
                            "description": "The namespaced name of the ReleaseServiceConfig",
                            "name": "releaseServiceConfig",
                            "type": "string"
                        },
                        {
                            "description": "The namespaced name of the Snapshot",
                            "name": "snapshot",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Subdirectory inside the workspace to be used",
                            "name": "subdirectory",
                            "type": "string"
                        },
                        {
                            "default": "empty",
                            "description": "The OCI repository where the Trusted Artifacts are stored",
                            "name": "ociStorage",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "oras options to pass to Trusted Artifacts calls",
                            "name": "orasOptions",
                            "type": "string"
                        },
                        {
                            "default": "1d",
                            "description": "Expiration date for the trusted artifacts created in the OCI repository. An empty string means the artifacts do not expire",
                            "name": "ociArtifactExpiresAfter",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Flag to enable debug logging in trusted artifacts. Set to a non-empty string to enable",
                            "name": "trustedArtifactsDebug",
                            "type": "string"
                        },
                        {
                            "default": "/var/workdir/release",
                            "description": "The location where data will be stored",
                            "name": "dataDir",
                            "type": "string"
                        },
                        {
                            "description": "The url to the git repo where the release-service-catalog tasks and stepactions to be used are stored",
                            "name": "taskGitUrl",
                            "type": "string"
                        },
                        {
                            "description": "The revision in the taskGitUrl repo to be used",
                            "name": "taskGitRevision",
                            "type": "string"
                        },
                        {
                            "default": "trusted-ca",
                            "description": "The name of the ConfigMap to read CA bundle data from",
                            "name": "caTrustConfigMapName",
                            "type": "string"
                        },
                        {
                            "default": "ca-bundle.crt",
                            "description": "The name of the key in the ConfigMap that contains the CA bundle data",
                            "name": "caTrustConfigMapKey",
                            "type": "string"
                        },
                        {
                            "default": "/mnt/trusted-ca/ca-bundle.crt",
                            "description": "Path to CA certificate bundle for TLS verification with self-signed certificates",
                            "name": "caCertPath",
                            "type": "string"
                        }
                    ],
                    "results": [
                        {
                            "description": "The relative path in the workspace to the stored release json",
                            "name": "release",
                            "type": "string"
                        },
                        {
                            "description": "The relative path in the workspace to the stored releasePlan json",
                            "name": "releasePlan",
                            "type": "string"
                        },
                        {
                            "description": "The relative path in the workspace to the stored releasePlanAdmission json",
                            "name": "releasePlanAdmission",
                            "type": "string"
                        },
                        {
                            "description": "The relative path in the workspace to the stored releaseServiceConfig json",
                            "name": "releaseServiceConfig",
                            "type": "string"
                        },
                        {
                            "description": "The relative path in the workspace to the stored snapshotSpec json",
                            "name": "snapshotSpec",
                            "type": "string"
                        },
                        {
                            "description": "The relative path in the workspace to the stored data json",
                            "name": "data",
                            "type": "string"
                        },
                        {
                            "description": "The relative path in the workspace to the results directory",
                            "name": "resultsDir",
                            "type": "string"
                        },
                        {
                            "description": "single component mode",
                            "name": "singleComponentMode",
                            "type": "string"
                        },
                        {
                            "description": "name of Snapshot resource",
                            "name": "snapshotName",
                            "type": "string"
                        },
                        {
                            "description": "namespace where Snapshot is located",
                            "name": "snapshotNamespace",
                            "type": "string"
                        },
                        {
                            "description": "Build Id where Snapshot originated",
                            "name": "snapshotBuildId",
                            "type": "string"
                        },
                        {
                            "description": "json object containing git resolver metadata about the running release pipeline",
                            "name": "releasePipelineMetadata",
                            "type": "string"
                        },
                        {
                            "description": "Produced trusted data artifact",
                            "name": "sourceDataArtifact",
                            "type": "string"
                        },
                        {
                            "description": "Subdirectory inside the workspace to be used",
                            "name": "subdirectory",
                            "type": "string"
                        }
                    ],
                    "stepTemplate": {
                        "computeResources": {},
                        "env": [
                            {
                                "name": "IMAGE_EXPIRES_AFTER",
                                "value": "1d"
                            },
                            {
                                "name": "ORAS_OPTIONS"
                            },
                            {
                                "name": "DEBUG"
                            }
                        ],
                        "securityContext": {
                            "runAsUser": 1001
                        },
                        "volumeMounts": [
                            {
                                "mountPath": "/var/workdir",
                                "name": "workdir"
                            },
                            {
                                "mountPath": "/mnt/trusted-ca",
                                "name": "trusted-ca",
                                "readOnly": true
                            }
                        ]
                    },
                    "steps": [
                        {
                            "computeResources": {
                                "limits": {
                                    "memory": "64Mi"
                                },
                                "requests": {
                                    "cpu": "50m",
                                    "memory": "64Mi"
                                }
                            },
                            "env": [
                                {
                                    "name": "RELEASE",
                                    "value": "ex-registry-sh-869ae581/snapshot-sample-869ae581-bsrlj"
                                },
                                {
                                    "name": "RELEASE_PLAN",
                                    "value": "ex-registry-sh-869ae581/source-releaseplan"
                                },
                                {
                                    "name": "RELEASE_PLAN_ADMISSION",
                                    "value": "ex-registry-sh-managed-869ae581/demo"
                                },
                                {
                                    "name": "RELEASE_SERVICE_CONFIG",
                                    "value": "release-service/release-service-config"
                                },
                                {
                                    "name": "SNAPSHOT",
                                    "value": "ex-registry-sh-869ae581/snapshot-sample-869ae581"
                                }
                            ],
                            "image": "quay.io/konflux-ci/release-service-utils@sha256:440c27f13adab931460a9371df82d3757b77f7ccc1b7604d737e0c78760a95c9",
                            "name": "collect-data",
                            "script": "#!/usr/bin/env bash\nset -eo pipefail\n\nif [ -f \"/mnt/trusted-ca/ca-bundle.crt\" ]; then\n    export SSL_CERT_FILE=\"/mnt/trusted-ca/ca-bundle.crt\"\nfi\n\nset -x\necho -n \"add9a4ba-a70a-422c-b994-67c1bcbfd6b8\" \u003e \"/tekton/results/subdirectory\"\n\nRESULTS_DIR_PATH=\"results\"\nif [ -n \"add9a4ba-a70a-422c-b994-67c1bcbfd6b8\" ]; then\n  mkdir -p \"/var/workdir/release/add9a4ba-a70a-422c-b994-67c1bcbfd6b8\"\n  RESULTS_DIR_PATH=\"add9a4ba-a70a-422c-b994-67c1bcbfd6b8/results\"\nfi\n\nmkdir -p \"/var/workdir/release/$RESULTS_DIR_PATH\"\necho -n \"$RESULTS_DIR_PATH\" \u003e \"/tekton/results/resultsDir\"\n\nRELEASE_PATH=\"add9a4ba-a70a-422c-b994-67c1bcbfd6b8/release.json\"\necho -n \"$RELEASE_PATH\" \u003e \"/tekton/results/release\"\nget-resource \"release\" \"${RELEASE}\" | tee \"/var/workdir/release/$RELEASE_PATH\"\n\nRELEASEPLAN_PATH=\"add9a4ba-a70a-422c-b994-67c1bcbfd6b8/release_plan.json\"\necho -n \"$RELEASEPLAN_PATH\" \u003e \"/tekton/results/releasePlan\"\nget-resource \"releaseplan\" \"${RELEASE_PLAN}\" | tee \"/var/workdir/release/$RELEASEPLAN_PATH\"\n\nRELEASEPLANADMISSION_PATH=\"add9a4ba-a70a-422c-b994-67c1bcbfd6b8/release_plan_admission.json\"\necho -n \"$RELEASEPLANADMISSION_PATH\" \u003e \"/tekton/results/releasePlanAdmission\"\nget-resource \"releaseplanadmission\" \"${RELEASE_PLAN_ADMISSION}\" \\\n  | tee \"/var/workdir/release/$RELEASEPLANADMISSION_PATH\"\n\nRELEASESERVICECONFIG_PATH=\"add9a4ba-a70a-422c-b994-67c1bcbfd6b8/release_service_config.json\"\necho -n \"$RELEASESERVICECONFIG_PATH\" \u003e \"/tekton/results/releaseServiceConfig\"\nget-resource \"releaseserviceconfig\" \"${RELEASE_SERVICE_CONFIG}\" \\\n  | tee \"/var/workdir/release/$RELEASESERVICECONFIG_PATH\"\n\necho -e \"\\nFetching Snapshot Spec\"\nSNAPSHOTSPEC_PATH=\"add9a4ba-a70a-422c-b994-67c1bcbfd6b8/snapshot_spec.json\"\necho -n \"$SNAPSHOTSPEC_PATH\" \u003e \"/tekton/results/snapshotSpec\"\n# Empty-string componentGroup is treated as unset; fall back to .application, then drop it.\nget-resource \"snapshot\" \"${SNAPSHOT}\" \"{.spec}\" \\\n  | jq '(if (.componentGroup == null or .componentGroup == \"\")\n    then .componentGroup = .application else . end)\n    | del(.application)' \\\n  | tee \"/var/workdir/release/$SNAPSHOTSPEC_PATH\"\nlabels=$(get-resource \"snapshot\" \"${SNAPSHOT}\" \"{.metadata.labels}\")\nBUILD_ID=$(jq -r '.\"appstudio.openshift.io/build-pipelinerun\" // \"\"' \u003c\u003c\u003c \"${labels}\")\necho -n \"${BUILD_ID}\" | tee \"/tekton/results/snapshotBuildId\"\n\necho -e \"\\nGenerating collectors data\"\ncollectors_status=$(get-resource \"release\" \"${RELEASE}\" \"{.status.collectors}\")\necho \"***collectors status\"\necho \"${collectors_status}\"\necho \"***\"\n\ncollectors_result=$(jq -c '\n  def deepmerge(a; b):\n    reduce b[] as $item (a;\n    reduce ($item | keys_unsorted[]) as $key (.;\n    $item[$key] as $val | ($val | type) as $type | .[$key] = if ($type == \"object\") then\n    deepmerge({}; [if .[$key] == null then {} else .[$key] end, $val])\n    elif ($type == \"array\") then\n    (.[$key] + $val | unique)\n    else\n    $val\n    end)\n    );\n\n  # Ensure we safely handle missing collectors\n  (.? // {}) as $collectors |\n\n  # Flatten and combine the managed and tenant sections\n  [($collectors.managed? // {} | to_entries | map(.value)) +\n   ($collectors.tenant? // {} | to_entries | map(.value))] |\n   flatten |\n   deepmerge({}; .)\n' \u003c\u003c\u003c \"${collectors_status}\")\necho \"***collectors\"\njq \u003c\u003c\u003c \"$collectors_result\"\necho \"***\"\n\necho -e \"\\nFetching merged data json\"\nrelease_result=$(get-resource \"release\" \"${RELEASE}\" \"{.spec.data}\")\n\nrelease_plan_result=$(get-resource \"releaseplan\" \"${RELEASE_PLAN}\" \"{.spec.data}\")\n\nrelease_plan_admission_result=$(get-resource \"releaseplanadmission\" \"${RELEASE_PLAN_ADMISSION}\" \\\n    \"{.spec.data}\")\n\n# Merge collectors and Release keys. Release has higher priority\nmerged_output=$(merge-json \"$collectors_result\" \"$release_result\")\n\n# Merge now with ReleasePlan keys. ReleasePlan has higher priority\nmerged_output=$(merge-json \"$merged_output\" \"$release_plan_result\")\n\n# Finally merge with ReleasePlanAdmission keys. ReleasePlanAdmission has higher priority\nmerged_output=$(merge-json \"$merged_output\" \"$release_plan_admission_result\")\n\nDATA_PATH=\"add9a4ba-a70a-422c-b994-67c1bcbfd6b8/data.json\"\necho -n \"$DATA_PATH\" \u003e \"/tekton/results/data\"\necho \"$merged_output\" | tee \"/var/workdir/release/$DATA_PATH\"\n\n# get pipeline ref info\npipelineref=$(jq -c '.spec.pipeline.pipelineRef' \\\n  \"/var/workdir/release/add9a4ba-a70a-422c-b994-67c1bcbfd6b8/release_plan_admission.json\")\nresolver=$(jq -r '.resolver // \"\"' \u003c\u003c\u003c \"${pipelineref}\")\nif [ \"${resolver}\" == \"git\" ] ; then\n  url=$(jq -r '.params[] | select(.name==\"url\") | .value' \u003c\u003c\u003c \"${pipelineref}\")\n  revision=$(jq -r '.params[] | select(.name==\"revision\") | .value' \u003c\u003c\u003c \"${pipelineref}\")\n  pathinrepo=$(jq -r '.params[] | select(.name==\"pathInRepo\") | .value' \u003c\u003c\u003c \"${pipelineref}\")\n  orgrepo=\"${url#*/*/*/}\"\n  org=$(echo \"${orgrepo}\" | cut -f1 -d/)\n  repo=$(echo \"${orgrepo}\" | cut -f2 -d/ | cut -d. -f1)\n\n  sha=$(curl -s \"https://api.github.com/repos/${org}/${repo}/commits/${revision}\" | jq -r '.sha // \"\"')\n\nfi\n\norg=\"${org:-unknown}\"\nrepo=\"${repo:-unknown}\"\nrevision=\"${revision:-unknown}\"\npathinrepo=\"${pathinrepo:-unknown}\"\nsha=\"${sha:-unknown}\"\n\necho \"\"\necho \"Release Pipeline Ref Info:\"\necho \"--------------------------\"\n\njson=$(jq -n -c \\\n  --arg org \"${org}\" \\\n  --arg repo \"${repo}\" \\\n  --arg revision \"${revision}\" \\\n  --arg pathinrepo \"${pathinrepo}\" \\\n  --arg sha \"${sha}\" \\\n  '$ARGS.named')\n\necho \"${json}\" \u003e \"/tekton/results/releasePipelineMetadata\"\n# pretty print for log message\njq . \u003c\u003c\u003c \"$json\"\n\nSINGLE_COMPONENT_MODE=$(jq -r '.singleComponentMode // \"false\"' \"/var/workdir/release/$DATA_PATH\")\nSNAPSHOT_NAME=$(echo \"${SNAPSHOT}\" | cut -f2 -d/)\nSNAPSHOT_NAMESPACE=$(echo \"${SNAPSHOT}\" | cut -f1 -d/)\n\necho -n \"${SINGLE_COMPONENT_MODE}\" | tee \"/tekton/results/singleComponentMode\"\necho -n \"${SNAPSHOT_NAME}\" | tee \"/tekton/results/snapshotName\"\necho -n \"${SNAPSHOT_NAMESPACE}\" | tee \"/tekton/results/snapshotNamespace\"\n"
                        },
                        {
                            "computeResources": {
                                "limits": {
                                    "memory": "32Mi"
                                },
                                "requests": {
                                    "cpu": "10m",
                                    "memory": "32Mi"
                                }
                            },
                            "image": "quay.io/konflux-ci/release-service-utils@sha256:440c27f13adab931460a9371df82d3757b77f7ccc1b7604d737e0c78760a95c9",
                            "name": "check-data-key-sources",
                            "script": "#!/usr/bin/env bash\nset -ex\n\nDISALLOWED_KEYS_JSON='{\n    \"Release\": [\n        \"releaseNotes.product_id\",\n        \"releaseNotes.product_name\",\n        \"releaseNotes.product_version\",\n        \"releaseNotes.product_stream\",\n        \"releaseNotes.cpe\",\n        \"releaseNotes.allow_custom_live_id\"\n    ],\n    \"ReleasePlan\": [\n        \"releaseNotes.product_id\",\n        \"releaseNotes.product_name\",\n        \"releaseNotes.product_version\",\n        \"releaseNotes.product_stream\",\n        \"releaseNotes.cpe\",\n        \"releaseNotes.allow_custom_live_id\"\n    ],\n    \"ReleasePlanAdmission\": [\n    ]\n}'\n\nRC=0\n\ncheck_source () { # Expected arguments are [CRD from DISALLOWED_KEYS_JSON, file]\n    for KEY in $(jq -r \".$1[]\" \u003c\u003c\u003c \"$DISALLOWED_KEYS_JSON\") ; do\n        if [[ $(jq \".spec.data.$KEY\" \"$2\") != \"null\" ]] ; then\n            echo \"Found disallowed key: $KEY in resource $1\"\n            RC=1\n        fi\n    done\n}\n\ncheck_source \"Release\" \"/var/workdir/release/add9a4ba-a70a-422c-b994-67c1bcbfd6b8/release.json\"\ncheck_source \"ReleasePlan\" \"/var/workdir/release/add9a4ba-a70a-422c-b994-67c1bcbfd6b8/release_plan.json\"\ncheck_source \"ReleasePlanAdmission\" \\\n    \"/var/workdir/release/add9a4ba-a70a-422c-b994-67c1bcbfd6b8/release_plan_admission.json\"\n\nexit $RC\n"
                        },
                        {
                            "args": [
                                "create",
                                "--store",
                                "quay-service.quay/test-org/trusted-artifacts",
                                "/tekton/results/sourceDataArtifact=/var/workdir/release"
                            ],
                            "computeResources": {
                                "limits": {
                                    "memory": "128Mi"
                                },
                                "requests": {
                                    "cpu": "250m",
                                    "memory": "128Mi"
                                }
                            },
                            "env": [
                                {
                                    "name": "HOME",
                                    "value": "/tekton/home"
                                },
                                {
                                    "name": "ORAS_OPTIONS"
                                },
                                {
                                    "name": "CA_FILE",
                                    "value": "/mnt/trusted-ca/ca-bundle.crt"
                                }
                            ],
                            "image": "quay.io/konflux-ci/build-trusted-artifacts@sha256:9bd32f6bafb517b309e11a2d89365052b4ab3f1c9c23c4ffd45aff6f03960476",
                            "name": "create-trusted-artifact"
                        }
                    ],
                    "volumes": [
                        {
                            "emptyDir": {},
                            "name": "workdir"
                        },
                        {
                            "configMap": {
                                "items": [
                                    {
                                        "key": "ca-bundle.crt",
                                        "path": "ca-bundle.crt"
                                    }
                                ],
                                "name": "trusted-ca",
                                "optional": true
                            },
                            "name": "trusted-ca"
                        }
                    ]
                }
            }
        },
        {
            "apiVersion": "tekton.dev/v1",
            "kind": "TaskRun",
            "metadata": {
                "annotations": {
                    "chains.tekton.dev/signed": "true",
                    "operator-sdk/primary-resource": "ex-registry-sh-869ae581/snapshot-sample-869ae581-bsrlj",
                    "operator-sdk/primary-resource-type": "Release.appstudio.redhat.com",
                    "pipeline.tekton.dev/release": "70f7308",
                    "results.tekton.dev/childReadyForDeletion": "true",
                    "results.tekton.dev/record": "ex-registry-sh-managed-869ae581/results/add9a4ba-a70a-422c-b994-67c1bcbfd6b8/records/04666a94-1c2d-474a-8c0d-8a35a4d3c97c",
                    "results.tekton.dev/result": "ex-registry-sh-managed-869ae581/results/add9a4ba-a70a-422c-b994-67c1bcbfd6b8",
                    "results.tekton.dev/stored": "true",
                    "tekton.dev/pipelines.minVersion": "0.12.1",
                    "tekton.dev/tags": "release"
                },
                "creationTimestamp": "2026-08-26T17:48:42Z",
                "finalizers": [
                    "chains.tekton.dev/taskrun",
                    "results.tekton.dev/taskrun"
                ],
                "generation": 1,
                "labels": {
                    "app.kubernetes.io/managed-by": "tekton-pipelines",
                    "appstudio.openshift.io/application": "appstudio",
                    "appstudio.openshift.io/service": "release",
                    "appstudio.openshift.io/snapshot": "snapshot-sample-869ae581",
                    "pipelines.appstudio.openshift.io/type": "managed",
                    "release.appstudio.openshift.io/attempt": "0",
                    "release.appstudio.openshift.io/name": "snapshot-sample-869ae581-bsrlj",
                    "release.appstudio.openshift.io/namespace": "ex-registry-sh-869ae581",
                    "tekton.dev/memberOf": "tasks",
                    "tekton.dev/pipeline": "push-to-external-registry",
                    "tekton.dev/pipelineRun": "managed-hgppl",
                    "tekton.dev/pipelineRunUID": "add9a4ba-a70a-422c-b994-67c1bcbfd6b8",
                    "tekton.dev/pipelineTask": "collect-registry-token-secret",
                    "tekton.dev/task": "collect-registry-token-secret"
                },
                "name": "managed-hgppl-collect-registry-token-secret",
                "namespace": "ex-registry-sh-managed-869ae581",
                "ownerReferences": [
                    {
                        "apiVersion": "tekton.dev/v1",
                        "blockOwnerDeletion": true,
                        "controller": true,
                        "kind": "PipelineRun",
                        "name": "managed-hgppl",
                        "uid": "add9a4ba-a70a-422c-b994-67c1bcbfd6b8"
                    }
                ],
                "resourceVersion": "9850",
                "uid": "04666a94-1c2d-474a-8c0d-8a35a4d3c97c"
            },
            "spec": {
                "params": [
                    {
                        "name": "dataPath",
                        "value": "add9a4ba-a70a-422c-b994-67c1bcbfd6b8/data.json"
                    },
                    {
                        "name": "ociStorage",
                        "value": "quay-service.quay/test-org/trusted-artifacts"
                    },
                    {
                        "name": "sourceDataArtifact",
                        "value": "oci:quay-service.quay/test-org/trusted-artifacts@sha256:fb7aea1a4762e1869e9f188c03e0db2cad0ef55d35963b0134f5b2bf5f30fce0"
                    },
                    {
                        "name": "dataDir",
                        "value": "/var/workdir/release"
                    },
                    {
                        "name": "trustedArtifactsDebug",
                        "value": ""
                    },
                    {
                        "name": "taskGitUrl",
                        "value": "https://github.com/swickersh/release-service-catalog"
                    },
                    {
                        "name": "taskGitRevision",
                        "value": "4d8f5d74eb4405ac637042fde05a3330b26bb548"
                    }
                ],
                "serviceAccountName": "release-service-account",
                "taskRef": {
                    "params": [
                        {
                            "name": "url",
                            "value": "https://github.com/swickersh/release-service-catalog"
                        },
                        {
                            "name": "revision",
                            "value": "4d8f5d74eb4405ac637042fde05a3330b26bb548"
                        },
                        {
                            "name": "pathInRepo",
                            "value": "tasks/managed/collect-registry-token-secret/collect-registry-token-secret.yaml"
                        }
                    ],
                    "resolver": "git"
                },
                "timeout": "3h50m0s"
            },
            "status": {
                "artifacts": {},
                "completionTime": "2026-08-26T17:49:50Z",
                "conditions": [
                    {
                        "lastTransitionTime": "2026-08-26T17:49:50Z",
                        "message": "All Steps have completed executing",
                        "reason": "Succeeded",
                        "status": "True",
                        "type": "Succeeded"
                    }
                ],
                "podName": "managed-hgppl-collect-registry-token-secret-pod",
                "provenance": {
                    "featureFlags": {
                        "awaitSidecarReadiness": true,
                        "coschedule": "workspaces",
                        "enableAPIFields": "beta",
                        "enableProvenanceInStatus": true,
                        "enforceNonfalsifiability": "none",
                        "maxResultSize": 4096,
                        "resultExtractionMethod": "termination-message",
                        "runningInEnvWithInjectedSidecars": true,
                        "sendCloudEventsForRuns": true,
                        "verificationNoMatchPolicy": "ignore"
                    },
                    "refSource": {
                        "digest": {
                            "sha1": "4d8f5d74eb4405ac637042fde05a3330b26bb548"
                        },
                        "entryPoint": "tasks/managed/collect-registry-token-secret/collect-registry-token-secret.yaml",
                        "uri": "git+https://github.com/swickersh/release-service-catalog"
                    }
                },
                "results": [
                    {
                        "name": "registrySecret",
                        "type": "string",
                        "value": "quay-api-token"
                    }
                ],
                "startTime": "2026-08-26T17:48:43Z",
                "steps": [
                    {
                        "container": "step-use-trusted-artifact",
                        "imageID": "quay.io/konflux-ci/build-trusted-artifacts@sha256:9bd32f6bafb517b309e11a2d89365052b4ab3f1c9c23c4ffd45aff6f03960476",
                        "name": "use-trusted-artifact",
                        "provenance": {},
                        "terminated": {
                            "containerID": "containerd://bb743ca0576b6e077f5e949bc77429c43a6f3d4a5a76e3e351828d8bb7f6d037",
                            "exitCode": 0,
                            "finishedAt": "2026-08-26T17:49:48Z",
                            "reason": "Completed",
                            "startedAt": "2026-08-26T17:49:48Z"
                        },
                        "terminationReason": "Completed"
                    },
                    {
                        "container": "step-collect-secret",
                        "imageID": "quay.io/konflux-ci/release-service-utils@sha256:534529b2450a67cce9779fa19f1b0808ebd8718baf349f8c79db6cf99ad522dc",
                        "name": "collect-secret",
                        "provenance": {},
                        "terminated": {
                            "containerID": "containerd://a4457f2bfd79cdb5791207961bdb340da2a2bd027b684e28fdfb979ef74b5567",
                            "exitCode": 0,
                            "finishedAt": "2026-08-26T17:49:49Z",
                            "message": "[{\"key\":\"registrySecret\",\"value\":\"quay-api-token\",\"type\":1}]",
                            "reason": "Completed",
                            "startedAt": "2026-08-26T17:49:49Z"
                        },
                        "terminationReason": "Completed"
                    }
                ],
                "taskSpec": {
                    "description": "Tekton task that collects secret name containing registry token from the data file",
                    "params": [
                        {
                            "description": "Path to the merged data JSON file generated by collect-data task",
                            "name": "dataPath",
                            "type": "string"
                        },
                        {
                            "default": "empty",
                            "description": "The OCI repository where the Trusted Artifacts are stored",
                            "name": "ociStorage",
                            "type": "string"
                        },
                        {
                            "default": "1d",
                            "description": "Expiration date for the trusted artifacts created in the OCI repository. An empty string means the artifacts do not expire",
                            "name": "ociArtifactExpiresAfter",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Flag to enable debug logging in trusted artifacts. Set to a non-empty string to enable",
                            "name": "trustedArtifactsDebug",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "oras options to pass to Trusted Artifacts calls",
                            "name": "orasOptions",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Location of trusted artifacts to be used to populate data directory",
                            "name": "sourceDataArtifact",
                            "type": "string"
                        },
                        {
                            "default": "/var/workdir/release",
                            "description": "The location where data will be stored",
                            "name": "dataDir",
                            "type": "string"
                        },
                        {
                            "description": "The url to the git repo where the release-service-catalog tasks and stepactions to be used are stored",
                            "name": "taskGitUrl",
                            "type": "string"
                        },
                        {
                            "description": "The revision in the taskGitUrl repo to be used",
                            "name": "taskGitRevision",
                            "type": "string"
                        },
                        {
                            "default": "trusted-ca",
                            "description": "The name of the ConfigMap to read CA bundle data from",
                            "name": "caTrustConfigMapName",
                            "type": "string"
                        },
                        {
                            "default": "ca-bundle.crt",
                            "description": "The name of the key in the ConfigMap that contains the CA bundle data",
                            "name": "caTrustConfigMapKey",
                            "type": "string"
                        },
                        {
                            "default": "/mnt/trusted-ca/ca-bundle.crt",
                            "description": "Path to CA certificate bundle for TLS verification with self-signed certificates",
                            "name": "caCertPath",
                            "type": "string"
                        }
                    ],
                    "results": [
                        {
                            "description": "The kube secret to use quay.io API, containing one key: token",
                            "name": "registrySecret",
                            "type": "string"
                        }
                    ],
                    "stepTemplate": {
                        "computeResources": {},
                        "env": [
                            {
                                "name": "IMAGE_EXPIRES_AFTER",
                                "value": "1d"
                            },
                            {
                                "name": "ORAS_OPTIONS"
                            },
                            {
                                "name": "DEBUG"
                            }
                        ],
                        "securityContext": {
                            "runAsUser": 1001
                        },
                        "volumeMounts": [
                            {
                                "mountPath": "/var/workdir",
                                "name": "workdir"
                            },
                            {
                                "mountPath": "/mnt/trusted-ca",
                                "name": "trusted-ca",
                                "readOnly": true
                            }
                        ]
                    },
                    "steps": [
                        {
                            "args": [
                                "use",
                                "oci:quay-service.quay/test-org/trusted-artifacts@sha256:fb7aea1a4762e1869e9f188c03e0db2cad0ef55d35963b0134f5b2bf5f30fce0=/var/workdir/release"
                            ],
                            "computeResources": {
                                "limits": {
                                    "memory": "64Mi"
                                },
                                "requests": {
                                    "cpu": "30m",
                                    "memory": "64Mi"
                                }
                            },
                            "env": [
                                {
                                    "name": "HOME",
                                    "value": "/tekton/home"
                                },
                                {
                                    "name": "ORAS_OPTIONS"
                                },
                                {
                                    "name": "CA_FILE",
                                    "value": "/mnt/trusted-ca/ca-bundle.crt"
                                }
                            ],
                            "image": "quay.io/konflux-ci/build-trusted-artifacts@sha256:9bd32f6bafb517b309e11a2d89365052b4ab3f1c9c23c4ffd45aff6f03960476",
                            "name": "use-trusted-artifact"
                        },
                        {
                            "command": [
                                "python3",
                                "/home/scripts/python/tasks/managed/collect_registry_token_secret.py"
                            ],
                            "computeResources": {
                                "limits": {
                                    "memory": "128Mi"
                                },
                                "requests": {
                                    "cpu": "50m",
                                    "memory": "128Mi"
                                }
                            },
                            "env": [
                                {
                                    "name": "PARAM_DATA_DIR",
                                    "value": "/var/workdir/release"
                                },
                                {
                                    "name": "PARAM_DATA_PATH",
                                    "value": "add9a4ba-a70a-422c-b994-67c1bcbfd6b8/data.json"
                                },
                                {
                                    "name": "RESULT_REGISTRY_SECRET",
                                    "value": "/tekton/results/registrySecret"
                                }
                            ],
                            "image": "quay.io/konflux-ci/release-service-utils@sha256:534529b2450a67cce9779fa19f1b0808ebd8718baf349f8c79db6cf99ad522dc",
                            "name": "collect-secret"
                        }
                    ],
                    "volumes": [
                        {
                            "emptyDir": {},
                            "name": "workdir"
                        },
                        {
                            "configMap": {
                                "items": [
                                    {
                                        "key": "ca-bundle.crt",
                                        "path": "ca-bundle.crt"
                                    }
                                ],
                                "name": "trusted-ca",
                                "optional": true
                            },
                            "name": "trusted-ca"
                        }
                    ]
                }
            }
        },
        {
            "apiVersion": "tekton.dev/v1",
            "kind": "TaskRun",
            "metadata": {
                "annotations": {
                    "chains.tekton.dev/signed": "true",
                    "operator-sdk/primary-resource": "ex-registry-sh-869ae581/snapshot-sample-869ae581-bsrlj",
                    "operator-sdk/primary-resource-type": "Release.appstudio.redhat.com",
                    "pipeline.tekton.dev/release": "70f7308",
                    "results.tekton.dev/childReadyForDeletion": "true",
                    "results.tekton.dev/record": "ex-registry-sh-managed-869ae581/results/add9a4ba-a70a-422c-b994-67c1bcbfd6b8/records/cd851c1a-7f3d-4c31-85e9-496e86740461",
                    "results.tekton.dev/result": "ex-registry-sh-managed-869ae581/results/add9a4ba-a70a-422c-b994-67c1bcbfd6b8",
                    "results.tekton.dev/stored": "true",
                    "tekton.dev/pipelines.minVersion": "0.12.1",
                    "tekton.dev/tags": "release"
                },
                "creationTimestamp": "2026-08-26T17:48:42Z",
                "finalizers": [
                    "chains.tekton.dev/taskrun",
                    "results.tekton.dev/taskrun"
                ],
                "generation": 1,
                "labels": {
                    "app.kubernetes.io/managed-by": "tekton-pipelines",
                    "appstudio.openshift.io/application": "appstudio",
                    "appstudio.openshift.io/service": "release",
                    "appstudio.openshift.io/snapshot": "snapshot-sample-869ae581",
                    "pipelines.appstudio.openshift.io/type": "managed",
                    "release.appstudio.openshift.io/attempt": "0",
                    "release.appstudio.openshift.io/name": "snapshot-sample-869ae581-bsrlj",
                    "release.appstudio.openshift.io/namespace": "ex-registry-sh-869ae581",
                    "tekton.dev/memberOf": "tasks",
                    "tekton.dev/pipeline": "push-to-external-registry",
                    "tekton.dev/pipelineRun": "managed-hgppl",
                    "tekton.dev/pipelineRunUID": "add9a4ba-a70a-422c-b994-67c1bcbfd6b8",
                    "tekton.dev/pipelineTask": "collect-signing-params",
                    "tekton.dev/task": "collect-signing-params"
                },
                "name": "managed-hgppl-collect-signing-params",
                "namespace": "ex-registry-sh-managed-869ae581",
                "ownerReferences": [
                    {
                        "apiVersion": "tekton.dev/v1",
                        "blockOwnerDeletion": true,
                        "controller": true,
                        "kind": "PipelineRun",
                        "name": "managed-hgppl",
                        "uid": "add9a4ba-a70a-422c-b994-67c1bcbfd6b8"
                    }
                ],
                "resourceVersion": "9423",
                "uid": "cd851c1a-7f3d-4c31-85e9-496e86740461"
            },
            "spec": {
                "serviceAccountName": "release-service-account",
                "taskRef": {
                    "params": [
                        {
                            "name": "url",
                            "value": "https://github.com/swickersh/release-service-catalog"
                        },
                        {
                            "name": "revision",
                            "value": "4d8f5d74eb4405ac637042fde05a3330b26bb548"
                        },
                        {
                            "name": "pathInRepo",
                            "value": "tasks/managed/collect-signing-params/collect-signing-params.yaml"
                        }
                    ],
                    "resolver": "git"
                },
                "timeout": "3h50m0s"
            },
            "status": {
                "artifacts": {},
                "completionTime": "2026-08-26T17:48:54Z",
                "conditions": [
                    {
                        "lastTransitionTime": "2026-08-26T17:48:54Z",
                        "message": "All Steps have completed executing",
                        "reason": "Succeeded",
                        "status": "True",
                        "type": "Succeeded"
                    }
                ],
                "podName": "managed-hgppl-collect-signing-params-pod",
                "provenance": {
                    "featureFlags": {
                        "awaitSidecarReadiness": true,
                        "coschedule": "workspaces",
                        "enableAPIFields": "beta",
                        "enableProvenanceInStatus": true,
                        "enforceNonfalsifiability": "none",
                        "maxResultSize": 4096,
                        "resultExtractionMethod": "termination-message",
                        "runningInEnvWithInjectedSidecars": true,
                        "sendCloudEventsForRuns": true,
                        "verificationNoMatchPolicy": "ignore"
                    },
                    "refSource": {
                        "digest": {
                            "sha1": "4d8f5d74eb4405ac637042fde05a3330b26bb548"
                        },
                        "entryPoint": "tasks/managed/collect-signing-params/collect-signing-params.yaml",
                        "uri": "git+https://github.com/swickersh/release-service-catalog"
                    }
                },
                "results": [
                    {
                        "name": "buildIdentityRegexp",
                        "type": "string",
                        "value": ""
                    },
                    {
                        "name": "defaultOIDCIssuer",
                        "type": "string",
                        "value": ""
                    },
                    {
                        "name": "enableKeylessSigning",
                        "type": "string",
                        "value": ""
                    },
                    {
                        "name": "fulcioExternalUrl",
                        "type": "string",
                        "value": ""
                    },
                    {
                        "name": "fulcioUrl",
                        "type": "string",
                        "value": ""
                    },
                    {
                        "name": "rekorExternalUrl",
                        "type": "string",
                        "value": ""
                    },
                    {
                        "name": "rekorUrl",
                        "type": "string",
                        "value": ""
                    },
                    {
                        "name": "tektonChainsIdentity",
                        "type": "string",
                        "value": ""
                    },
                    {
                        "name": "tufExternalUrl",
                        "type": "string",
                        "value": ""
                    },
                    {
                        "name": "tufUrl",
                        "type": "string",
                        "value": ""
                    }
                ],
                "startTime": "2026-08-26T17:48:42Z",
                "steps": [
                    {
                        "container": "step-collect-signing-params",
                        "imageID": "quay.io/konflux-ci/release-service-utils@sha256:5546fa78d3c88d7b6a2e8cff8902f7757f00541d0bbaf113b9f293133894afa3",
                        "name": "collect-signing-params",
                        "provenance": {},
                        "terminated": {
                            "containerID": "containerd://8e835adea28117f0e0bcabca83fb5ce43ffd250abf3f70d83f7aaeaa41c7e31c",
                            "exitCode": 0,
                            "finishedAt": "2026-08-26T17:48:53Z",
                            "message": "[{\"key\":\"buildIdentityRegexp\",\"value\":\"\",\"type\":1},{\"key\":\"defaultOIDCIssuer\",\"value\":\"\",\"type\":1},{\"key\":\"enableKeylessSigning\",\"value\":\"\",\"type\":1},{\"key\":\"fulcioExternalUrl\",\"value\":\"\",\"type\":1},{\"key\":\"fulcioUrl\",\"value\":\"\",\"type\":1},{\"key\":\"rekorExternalUrl\",\"value\":\"\",\"type\":1},{\"key\":\"rekorUrl\",\"value\":\"\",\"type\":1},{\"key\":\"tektonChainsIdentity\",\"value\":\"\",\"type\":1},{\"key\":\"tufExternalUrl\",\"value\":\"\",\"type\":1},{\"key\":\"tufUrl\",\"value\":\"\",\"type\":1}]",
                            "reason": "Completed",
                            "startedAt": "2026-08-26T17:48:48Z"
                        },
                        "terminationReason": "Completed"
                    }
                ],
                "taskSpec": {
                    "description": "Tekton task to collect Konflux configuration parameters related to\nkeyless signing using cosign. The task attempts to read the \"cluster-config\"\nConfigMap in the \"konflux-info\" namespace to extract signing parameters.\n\nIn case the ConfigMap is not found, the task will output empty strings for all parameters,\nallowing the pipeline to continue without signing parameters.",
                    "params": [
                        {
                            "default": "cluster-config",
                            "description": "The name of the ConfigMap to read signing parameters from",
                            "name": "configMapName",
                            "type": "string"
                        },
                        {
                            "default": "konflux-info",
                            "description": "The namespace where the ConfigMap is located",
                            "name": "configMapNamespace",
                            "type": "string"
                        },
                        {
                            "default": "trusted-ca",
                            "description": "The name of the ConfigMap to read CA bundle data from",
                            "name": "caTrustConfigMapName",
                            "type": "string"
                        },
                        {
                            "default": "ca-bundle.crt",
                            "description": "The name of the key in the ConfigMap that contains the CA bundle data",
                            "name": "caTrustConfigMapKey",
                            "type": "string"
                        }
                    ],
                    "results": [
                        {
                            "description": "A flag indicating whether keyless signing should be enabled, based on the presence of signing parameters.\n",
                            "name": "enableKeylessSigning",
                            "type": "string"
                        },
                        {
                            "description": "A default OIDC issuer URL to be used for signing.\n",
                            "name": "defaultOIDCIssuer",
                            "type": "string"
                        },
                        {
                            "description": "The external URL of the Rekor transparency log.\n",
                            "name": "rekorExternalUrl",
                            "type": "string"
                        },
                        {
                            "description": "The internal URL of the Rekor transparency log.\n",
                            "name": "rekorUrl",
                            "type": "string"
                        },
                        {
                            "description": "The external URL of the Fulcio certificate authority.\n",
                            "name": "fulcioExternalUrl",
                            "type": "string"
                        },
                        {
                            "description": "The URL of the Fulcio certificate authority.\n",
                            "name": "fulcioUrl",
                            "type": "string"
                        },
                        {
                            "description": "The external URL of the TUF repository.\n",
                            "name": "tufExternalUrl",
                            "type": "string"
                        },
                        {
                            "description": "The URL of the TUF repository.\n",
                            "name": "tufUrl",
                            "type": "string"
                        },
                        {
                            "description": "A regular expression to extract build identity from the OIDC token claims, if applicable.\n",
                            "name": "buildIdentityRegexp",
                            "type": "string"
                        },
                        {
                            "description": "The identity used in the certificate, generated by fulcio.\n",
                            "name": "tektonChainsIdentity",
                            "type": "string"
                        }
                    ],
                    "stepTemplate": {
                        "computeResources": {},
                        "securityContext": {
                            "runAsUser": 1001
                        },
                        "volumeMounts": [
                            {
                                "mountPath": "/mnt/trusted-ca",
                                "name": "trusted-ca",
                                "readOnly": true
                            }
                        ]
                    },
                    "steps": [
                        {
                            "computeResources": {
                                "limits": {
                                    "cpu": "50m",
                                    "memory": "128Mi"
                                },
                                "requests": {
                                    "cpu": "50m",
                                    "memory": "128Mi"
                                }
                            },
                            "image": "quay.io/konflux-ci/release-service-utils@sha256:5546fa78d3c88d7b6a2e8cff8902f7757f00541d0bbaf113b9f293133894afa3",
                            "name": "collect-signing-params",
                            "script": "#!/usr/bin/env bash\necho \"Getting cluster-config ConfigMap\"\nKFLX_CONFIG_PATH='/tmp/konflux_config.json'\n\n# Attempt to fetch the ConfigMap with retries, capture exit code\nif retry 3 kubectl get configmap \"cluster-config\" -n \"konflux-info\" -o json \u003e \\\n\"$KFLX_CONFIG_PATH\" 2\u003e/dev/null; then\n    echo \"ConfigMap found, extracting signing parameters\"\n\n    # Extract signing parameters from ConfigMap data, defaulting to empty string if not found\n    enableKeylessSigning=$(jq -r '.data.enableKeylessSigning // \"\"' \"$KFLX_CONFIG_PATH\")\n    defaultOIDCIssuer=$(jq -r '.data.defaultOIDCIssuer // \"\"' \"$KFLX_CONFIG_PATH\")\n    rekorExternalUrl=$(jq -r '.data.rekorExternalUrl // \"\"' \"$KFLX_CONFIG_PATH\")\n    rekorInternalUrl=$(jq -r '.data.rekorInternalUrl // \"\"' \"$KFLX_CONFIG_PATH\")\n    fulcioExternalUrl=$(jq -r '.data.fulcioExternalUrl // \"\"' \"$KFLX_CONFIG_PATH\")\n    fulcioInternalUrl=$(jq -r '.data.fulcioInternalUrl // \"\"' \"$KFLX_CONFIG_PATH\")\n    tufExternalUrl=$(jq -r '.data.tufExternalUrl // \"\"' \"$KFLX_CONFIG_PATH\")\n    tufInternalUrl=$(jq -r '.data.tufInternalUrl // \"\"' \"$KFLX_CONFIG_PATH\")\n    buildIdentityRegexp=$(jq -r '.data.buildIdentityRegexp // \"\"' \"$KFLX_CONFIG_PATH\")\n    tektonChainsIdentity=$(jq -r '.data.tektonChainsIdentity // \"\"' \"$KFLX_CONFIG_PATH\")\nelse\n    echo \"ConfigMap not found, using default empty values\"\n\n    # Set all parameters to empty strings when ConfigMap doesn't exist\n    enableKeylessSigning=\"false\"\n    defaultOIDCIssuer=\"\"\n    rekorExternalUrl=\"\"\n    rekorInternalUrl=\"\"\n    fulcioExternalUrl=\"\"\n    fulcioInternalUrl=\"\"\n    tufExternalUrl=\"\"\n    tufInternalUrl=\"\"\n    buildIdentityRegexp=\"\"\n    tektonChainsIdentity=\"\"\nfi\n\n# Write the values to the respective result paths and print them\necho -n \"$enableKeylessSigning\" | tee \"/tekton/results/enableKeylessSigning\"\necho -n \"$defaultOIDCIssuer\" | tee \"/tekton/results/defaultOIDCIssuer\"\necho -n \"$rekorExternalUrl\" | tee \"/tekton/results/rekorExternalUrl\"\nprefer_internal_or_external() {\n  local internal=\"$1\"\n  local external=\"$2\"\n  local result_path=\"$3\"\n\n  if [ -n \"$internal\" ]; then\n    echo -n \"$internal\" | tee \"$result_path\"\n  else\n    echo -n \"$external\" | tee \"$result_path\"\n  fi\n}\n\nprefer_internal_or_external \"$rekorInternalUrl\" \"$rekorExternalUrl\" \"/tekton/results/rekorUrl\"\necho -n \"$fulcioExternalUrl\" | tee \"/tekton/results/fulcioExternalUrl\"\nprefer_internal_or_external \"$fulcioInternalUrl\" \"$fulcioExternalUrl\" \"/tekton/results/fulcioUrl\"\necho -n \"$tufExternalUrl\" | tee \"/tekton/results/tufExternalUrl\"\nprefer_internal_or_external \"$tufInternalUrl\" \"$tufExternalUrl\" \"/tekton/results/tufUrl\"\necho -n \"$buildIdentityRegexp\" | tee \"/tekton/results/buildIdentityRegexp\"\necho -n \"$tektonChainsIdentity\" | tee \"/tekton/results/tektonChainsIdentity\"\n"
                        }
                    ],
                    "volumes": [
                        {
                            "configMap": {
                                "items": [
                                    {
                                        "key": "ca-bundle.crt",
                                        "path": "ca-bundle.crt"
                                    }
                                ],
                                "name": "trusted-ca",
                                "optional": true
                            },
                            "name": "trusted-ca"
                        }
                    ]
                }
            }
        },
        {
            "apiVersion": "tekton.dev/v1",
            "kind": "TaskRun",
            "metadata": {
                "annotations": {
                    "chains.tekton.dev/signed": "true",
                    "operator-sdk/primary-resource": "ex-registry-sh-869ae581/snapshot-sample-869ae581-bsrlj",
                    "operator-sdk/primary-resource-type": "Release.appstudio.redhat.com",
                    "pipeline.tekton.dev/release": "70f7308",
                    "results.tekton.dev/childReadyForDeletion": "true",
                    "results.tekton.dev/record": "ex-registry-sh-managed-869ae581/results/add9a4ba-a70a-422c-b994-67c1bcbfd6b8/records/65abcb55-334f-4ca0-875f-fdca6a2e20c1",
                    "results.tekton.dev/result": "ex-registry-sh-managed-869ae581/results/add9a4ba-a70a-422c-b994-67c1bcbfd6b8",
                    "results.tekton.dev/stored": "true",
                    "tekton.dev/pipelines.minVersion": "0.12.1",
                    "tekton.dev/tags": "release"
                },
                "creationTimestamp": "2026-08-26T17:48:42Z",
                "finalizers": [
                    "chains.tekton.dev/taskrun",
                    "results.tekton.dev/taskrun"
                ],
                "generation": 1,
                "labels": {
                    "app.kubernetes.io/managed-by": "tekton-pipelines",
                    "appstudio.openshift.io/application": "appstudio",
                    "appstudio.openshift.io/service": "release",
                    "appstudio.openshift.io/snapshot": "snapshot-sample-869ae581",
                    "pipelines.appstudio.openshift.io/type": "managed",
                    "release.appstudio.openshift.io/attempt": "0",
                    "release.appstudio.openshift.io/name": "snapshot-sample-869ae581-bsrlj",
                    "release.appstudio.openshift.io/namespace": "ex-registry-sh-869ae581",
                    "tekton.dev/memberOf": "tasks",
                    "tekton.dev/pipeline": "push-to-external-registry",
                    "tekton.dev/pipelineRun": "managed-hgppl",
                    "tekton.dev/pipelineRunUID": "add9a4ba-a70a-422c-b994-67c1bcbfd6b8",
                    "tekton.dev/pipelineTask": "collect-task-params",
                    "tekton.dev/task": "collect-task-params"
                },
                "name": "managed-hgppl-collect-task-params",
                "namespace": "ex-registry-sh-managed-869ae581",
                "ownerReferences": [
                    {
                        "apiVersion": "tekton.dev/v1",
                        "blockOwnerDeletion": true,
                        "controller": true,
                        "kind": "PipelineRun",
                        "name": "managed-hgppl",
                        "uid": "add9a4ba-a70a-422c-b994-67c1bcbfd6b8"
                    }
                ],
                "resourceVersion": "9351",
                "uid": "65abcb55-334f-4ca0-875f-fdca6a2e20c1"
            },
            "spec": {
                "params": [
                    {
                        "name": "dataDir",
                        "value": "/var/workdir/release"
                    },
                    {
                        "name": "dataPath",
                        "value": "add9a4ba-a70a-422c-b994-67c1bcbfd6b8/data.json"
                    },
                    {
                        "name": "keysToExtract",
                        "value": "[\n  {\"resultIndex\": 0, \"key\": \".conforma.workerCount\", \"default\": \"4\"},\n  {\"resultIndex\": 1, \"key\": \".sign.cosignSecretName\", \"default\": \"secret-not-present\"}\n]\n"
                    },
                    {
                        "name": "taskGitUrl",
                        "value": "https://github.com/swickersh/release-service-catalog"
                    },
                    {
                        "name": "taskGitRevision",
                        "value": "4d8f5d74eb4405ac637042fde05a3330b26bb548"
                    },
                    {
                        "name": "ociStorage",
                        "value": "quay-service.quay/test-org/trusted-artifacts"
                    },
                    {
                        "name": "sourceDataArtifact",
                        "value": "oci:quay-service.quay/test-org/trusted-artifacts@sha256:fb7aea1a4762e1869e9f188c03e0db2cad0ef55d35963b0134f5b2bf5f30fce0"
                    },
                    {
                        "name": "trustedArtifactsDebug",
                        "value": ""
                    }
                ],
                "serviceAccountName": "release-service-account",
                "taskRef": {
                    "params": [
                        {
                            "name": "url",
                            "value": "https://github.com/swickersh/release-service-catalog"
                        },
                        {
                            "name": "revision",
                            "value": "4d8f5d74eb4405ac637042fde05a3330b26bb548"
                        },
                        {
                            "name": "pathInRepo",
                            "value": "tasks/managed/collect-task-params/collect-task-params.yaml"
                        }
                    ],
                    "resolver": "git"
                },
                "timeout": "3h50m0s"
            },
            "status": {
                "artifacts": {},
                "completionTime": "2026-08-26T17:48:49Z",
                "conditions": [
                    {
                        "lastTransitionTime": "2026-08-26T17:48:49Z",
                        "message": "All Steps have completed executing",
                        "reason": "Succeeded",
                        "status": "True",
                        "type": "Succeeded"
                    }
                ],
                "podName": "managed-hgppl-collect-task-params-pod",
                "provenance": {
                    "featureFlags": {
                        "awaitSidecarReadiness": true,
                        "coschedule": "workspaces",
                        "enableAPIFields": "beta",
                        "enableProvenanceInStatus": true,
                        "enforceNonfalsifiability": "none",
                        "maxResultSize": 4096,
                        "resultExtractionMethod": "termination-message",
                        "runningInEnvWithInjectedSidecars": true,
                        "sendCloudEventsForRuns": true,
                        "verificationNoMatchPolicy": "ignore"
                    },
                    "refSource": {
                        "digest": {
                            "sha1": "4d8f5d74eb4405ac637042fde05a3330b26bb548"
                        },
                        "entryPoint": "tasks/managed/collect-task-params/collect-task-params.yaml",
                        "uri": "git+https://github.com/swickersh/release-service-catalog"
                    }
                },
                "results": [
                    {
                        "name": "extractedValues",
                        "type": "array",
                        "value": [
                            "4",
                            "secret-not-present"
                        ]
                    }
                ],
                "startTime": "2026-08-26T17:48:42Z",
                "steps": [
                    {
                        "container": "step-use-trusted-artifact",
                        "imageID": "quay.io/konflux-ci/build-trusted-artifacts@sha256:9bd32f6bafb517b309e11a2d89365052b4ab3f1c9c23c4ffd45aff6f03960476",
                        "name": "use-trusted-artifact",
                        "provenance": {},
                        "terminated": {
                            "containerID": "containerd://1e300b6b875f67cab2e40e8e3c0592b403265a74ad8cada5db55a3e941866507",
                            "exitCode": 0,
                            "finishedAt": "2026-08-26T17:48:49Z",
                            "reason": "Completed",
                            "startedAt": "2026-08-26T17:48:49Z"
                        },
                        "terminationReason": "Completed"
                    },
                    {
                        "container": "step-collect-task-params",
                        "imageID": "quay.io/konflux-ci/release-service-utils@sha256:5546fa78d3c88d7b6a2e8cff8902f7757f00541d0bbaf113b9f293133894afa3",
                        "name": "collect-task-params",
                        "provenance": {},
                        "terminated": {
                            "containerID": "containerd://162717f237b3da16f6510cd348e69733fed79000f34143bd6ff13add74246677",
                            "exitCode": 0,
                            "finishedAt": "2026-08-26T17:48:49Z",
                            "message": "[{\"key\":\"extractedValues\",\"value\":\"[\\n  \\\"4\\\",\\n  \\\"secret-not-present\\\"\\n]\\n\",\"type\":1}]",
                            "reason": "Completed",
                            "startedAt": "2026-08-26T17:48:49Z"
                        },
                        "terminationReason": "Completed"
                    }
                ],
                "taskSpec": {
                    "description": "Tekton task that extracts values from the data JSON file based on specified keys and exposes them as task results.\nThe task takes an array of resultIndex/key pairs and extracts the corresponding values from the dataPath JSON file.\nEach extracted value is placed at the specified resultIndex in the extractedValues array for use by downstream\ntasks. Optional default values can be provided for keys that may not exist in the data file. If no default is\nprovided and the key does not exist, the task will fail.",
                    "params": [
                        {
                            "description": "Path to the JSON string of the merged data containing the values to extract",
                            "name": "dataPath",
                            "type": "string"
                        },
                        {
                            "description": "JSON array of objects with \"resultIndex\", \"key\", and optional \"default\" fields. Each object specifies the array\nindex where the extracted value should be placed, the JSON path key to extract from the data file, and an\noptional default value to use if the key is not found. Example: [{\"resultIndex\": 1,\n\"key\": \".releaseNotes.summary\"}, {\"resultIndex\": 0, \"key\": \".foo\", \"default\": \"fallback_value\"}]\n",
                            "name": "keysToExtract",
                            "type": "string"
                        },
                        {
                            "default": "empty",
                            "description": "The OCI repository where the Trusted Artifacts are stored",
                            "name": "ociStorage",
                            "type": "string"
                        },
                        {
                            "default": "1d",
                            "description": "Expiration date for the trusted artifacts created in the OCI repository. An empty string means the artifacts do not expire",
                            "name": "ociArtifactExpiresAfter",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Flag to enable debug logging in trusted artifacts. Set to a non-empty string to enable",
                            "name": "trustedArtifactsDebug",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "oras options to pass to Trusted Artifacts calls",
                            "name": "orasOptions",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Location of trusted artifacts to be used to populate data directory",
                            "name": "sourceDataArtifact",
                            "type": "string"
                        },
                        {
                            "default": "/var/workdir/release",
                            "description": "The location where data will be stored",
                            "name": "dataDir",
                            "type": "string"
                        },
                        {
                            "description": "The url to the git repo where the release-service-catalog tasks and stepactions to be used are stored",
                            "name": "taskGitUrl",
                            "type": "string"
                        },
                        {
                            "description": "The revision in the taskGitUrl repo to be used",
                            "name": "taskGitRevision",
                            "type": "string"
                        },
                        {
                            "default": "trusted-ca",
                            "description": "The name of the ConfigMap to read CA bundle data from",
                            "name": "caTrustConfigMapName",
                            "type": "string"
                        },
                        {
                            "default": "ca-bundle.crt",
                            "description": "The name of the key in the ConfigMap that contains the CA bundle data",
                            "name": "caTrustConfigMapKey",
                            "type": "string"
                        },
                        {
                            "default": "/mnt/trusted-ca/ca-bundle.crt",
                            "description": "Path to CA certificate bundle for TLS verification with self-signed certificates",
                            "name": "caCertPath",
                            "type": "string"
                        }
                    ],
                    "results": [
                        {
                            "description": "Array of extracted values. Each value is placed at the resultIndex specified in the keysToExtract parameter.\nValues can be accessed by their specified index in downstream tasks.\n",
                            "name": "extractedValues",
                            "type": "array"
                        }
                    ],
                    "stepTemplate": {
                        "computeResources": {},
                        "env": [
                            {
                                "name": "IMAGE_EXPIRES_AFTER",
                                "value": "1d"
                            },
                            {
                                "name": "ORAS_OPTIONS"
                            },
                            {
                                "name": "DEBUG"
                            }
                        ],
                        "securityContext": {
                            "runAsUser": 1001
                        },
                        "volumeMounts": [
                            {
                                "mountPath": "/var/workdir",
                                "name": "workdir"
                            },
                            {
                                "mountPath": "/mnt/trusted-ca",
                                "name": "trusted-ca",
                                "readOnly": true
                            }
                        ]
                    },
                    "steps": [
                        {
                            "args": [
                                "use",
                                "oci:quay-service.quay/test-org/trusted-artifacts@sha256:fb7aea1a4762e1869e9f188c03e0db2cad0ef55d35963b0134f5b2bf5f30fce0=/var/workdir/release"
                            ],
                            "computeResources": {
                                "limits": {
                                    "memory": "64Mi"
                                },
                                "requests": {
                                    "cpu": "30m",
                                    "memory": "64Mi"
                                }
                            },
                            "env": [
                                {
                                    "name": "HOME",
                                    "value": "/tekton/home"
                                },
                                {
                                    "name": "ORAS_OPTIONS"
                                },
                                {
                                    "name": "CA_FILE",
                                    "value": "/mnt/trusted-ca/ca-bundle.crt"
                                }
                            ],
                            "image": "quay.io/konflux-ci/build-trusted-artifacts@sha256:9bd32f6bafb517b309e11a2d89365052b4ab3f1c9c23c4ffd45aff6f03960476",
                            "name": "use-trusted-artifact"
                        },
                        {
                            "computeResources": {
                                "limits": {
                                    "memory": "128Mi"
                                },
                                "requests": {
                                    "cpu": "50m",
                                    "memory": "128Mi"
                                }
                            },
                            "env": [
                                {
                                    "name": "KEYS_JSON",
                                    "value": "[\n  {\"resultIndex\": 0, \"key\": \".conforma.workerCount\", \"default\": \"4\"},\n  {\"resultIndex\": 1, \"key\": \".sign.cosignSecretName\", \"default\": \"secret-not-present\"}\n]\n"
                                }
                            ],
                            "image": "quay.io/konflux-ci/release-service-utils@sha256:5546fa78d3c88d7b6a2e8cff8902f7757f00541d0bbaf113b9f293133894afa3",
                            "name": "collect-task-params",
                            "script": "#!/usr/bin/env bash\nset -x\n\nDATA_FILE=\"/var/workdir/release/add9a4ba-a70a-422c-b994-67c1bcbfd6b8/data.json\"\nif [ ! -f \"${DATA_FILE}\" ] ; then\n    echo \"No valid data file was provided.\"\n    exit 1\nfi\n\n# Validate KEYS_JSON format\nif ! jq -e 'type == \"array\"' \u003c\u003c\u003c \"$KEYS_JSON\" \u003e /dev/null; then\n    echo \"keysToExtract must be a valid JSON array\"\n    echo \"Received value: $KEYS_JSON\"\n    exit 1\nfi\n\n# Get the number of keys to extract\nKEY_COUNT=$(jq 'length' \u003c\u003c\u003c \"$KEYS_JSON\")\nif [ \"$KEY_COUNT\" -eq 0 ]; then\n    echo \"keysToExtract array is empty\"\n    exit 1\nfi\n\n# Initialize result array with empty strings since it may not be populated in order based on\n# keysToExtract resultIndex input\nRESULT_ARRAY=\"[]\"\nfor i in $(seq 0 $((KEY_COUNT - 1))); do\n    RESULT_ARRAY=$(jq '. += [\"\"]' \u003c\u003c\u003c \"$RESULT_ARRAY\")\ndone\n\nfor i in $(seq 0 $((KEY_COUNT - 1))); do\n    RESULT_INDEX=$(jq -r \".[$i].resultIndex\" \u003c\u003c\u003c \"$KEYS_JSON\")\n    KEY=$(jq -r \".[$i].key\" \u003c\u003c\u003c \"$KEYS_JSON\")\n    DEFAULT_VALUE=$(jq -r \".[$i].default // null\" \u003c\u003c\u003c \"$KEYS_JSON\")\n\n    if [ \"$RESULT_INDEX\" = \"null\" ] || [ \"$KEY\" = \"null\" ]; then\n        echo \"Invalid key extraction specification at index $i: missing resultIndex or key\"\n        exit 1\n    fi\n\n    # Check if resultIndex is a valid integer\n    if ! [[ \"$RESULT_INDEX\" =~ ^[0-9]+$ ]]; then\n        echo \"Error: resultIndex at position $i must be a non-negative integer, got: $RESULT_INDEX\"\n        exit 1\n    fi\n\n    # Check if resultIndex is within valid bounds\n    if [ \"$RESULT_INDEX\" -ge \"$KEY_COUNT\" ]; then\n        echo \"Error: resultIndex $RESULT_INDEX at position $i is out of bounds.\"\n        echo \"Valid range is 0 to $((KEY_COUNT - 1))\"\n        exit 1\n    fi\n\n    # Extract the value from the data file using the specified key\n    TRANSFORMED_KEY=$(echo \"$KEY\" | sed -E 's/\\.([^\\.\"\\[]+|\"[^\"]+\")/.\"\\1\"/g')\n    VALUE=$(jq -r \"$TRANSFORMED_KEY\" \"$DATA_FILE\" 2\u003e/dev/null)\n\n    # Check if the key exists in the data file\n    if [ \"$VALUE\" = \"null\" ]; then\n        if [ \"$DEFAULT_VALUE\" != \"null\" ]; then\n            echo \"Key $KEY not found in data file, using default value: $DEFAULT_VALUE\"\n            VALUE=\"$DEFAULT_VALUE\"\n        else\n            echo \"Error: Key $KEY not found in data file, and no default value for it was passed\"\n            exit 1\n        fi\n    fi\n\n    # Update the array at the specified resultIndex\n    RESULT_ARRAY=$(jq --argjson idx \"$RESULT_INDEX\" --arg value \"$VALUE\" '.[$idx] = $value' \u003c\u003c\u003c \"$RESULT_ARRAY\")\ndone\n\n# Write the array result\njq \u003c\u003c\u003c \"$RESULT_ARRAY\" | tee \"/tekton/results/extractedValues\"\n"
                        }
                    ],
                    "volumes": [
                        {
                            "emptyDir": {},
                            "name": "workdir"
                        },
                        {
                            "configMap": {
                                "items": [
                                    {
                                        "key": "ca-bundle.crt",
                                        "path": "ca-bundle.crt"
                                    }
                                ],
                                "name": "trusted-ca",
                                "optional": true
                            },
                            "name": "trusted-ca"
                        }
                    ]
                }
            }
        },
        {
            "apiVersion": "tekton.dev/v1",
            "kind": "TaskRun",
            "metadata": {
                "annotations": {
                    "chains.tekton.dev/signed": "true",
                    "operator-sdk/primary-resource": "ex-registry-sh-869ae581/snapshot-sample-869ae581-bsrlj",
                    "operator-sdk/primary-resource-type": "Release.appstudio.redhat.com",
                    "pipeline.tekton.dev/release": "70f7308",
                    "results.tekton.dev/childReadyForDeletion": "true",
                    "results.tekton.dev/record": "ex-registry-sh-managed-869ae581/results/add9a4ba-a70a-422c-b994-67c1bcbfd6b8/records/42f65d55-3a80-4501-8703-c8303da0518a",
                    "results.tekton.dev/result": "ex-registry-sh-managed-869ae581/results/add9a4ba-a70a-422c-b994-67c1bcbfd6b8",
                    "results.tekton.dev/stored": "true",
                    "tekton.dev/pipelines.minVersion": "0.12.1",
                    "tekton.dev/tags": "release"
                },
                "creationTimestamp": "2026-08-26T17:51:56Z",
                "finalizers": [
                    "chains.tekton.dev/taskrun",
                    "results.tekton.dev/taskrun"
                ],
                "generation": 1,
                "labels": {
                    "app.kubernetes.io/managed-by": "tekton-pipelines",
                    "appstudio.openshift.io/application": "appstudio",
                    "appstudio.openshift.io/service": "release",
                    "appstudio.openshift.io/snapshot": "snapshot-sample-869ae581",
                    "pipelines.appstudio.openshift.io/type": "managed",
                    "release.appstudio.openshift.io/attempt": "0",
                    "release.appstudio.openshift.io/name": "snapshot-sample-869ae581-bsrlj",
                    "release.appstudio.openshift.io/namespace": "ex-registry-sh-869ae581",
                    "tekton.dev/memberOf": "tasks",
                    "tekton.dev/pipeline": "push-to-external-registry",
                    "tekton.dev/pipelineRun": "managed-hgppl",
                    "tekton.dev/pipelineRunUID": "add9a4ba-a70a-422c-b994-67c1bcbfd6b8",
                    "tekton.dev/pipelineTask": "collect-tpa-params",
                    "tekton.dev/task": "collect-tpa-params"
                },
                "name": "managed-hgppl-collect-tpa-params",
                "namespace": "ex-registry-sh-managed-869ae581",
                "ownerReferences": [
                    {
                        "apiVersion": "tekton.dev/v1",
                        "blockOwnerDeletion": true,
                        "controller": true,
                        "kind": "PipelineRun",
                        "name": "managed-hgppl",
                        "uid": "add9a4ba-a70a-422c-b994-67c1bcbfd6b8"
                    }
                ],
                "resourceVersion": "11240",
                "uid": "42f65d55-3a80-4501-8703-c8303da0518a"
            },
            "spec": {
                "params": [
                    {
                        "name": "dataPath",
                        "value": "add9a4ba-a70a-422c-b994-67c1bcbfd6b8/data.json"
                    },
                    {
                        "name": "ociStorage",
                        "value": "quay-service.quay/test-org/trusted-artifacts"
                    },
                    {
                        "name": "sourceDataArtifact",
                        "value": "oci:quay-service.quay/test-org/trusted-artifacts@sha256:fb7aea1a4762e1869e9f188c03e0db2cad0ef55d35963b0134f5b2bf5f30fce0"
                    },
                    {
                        "name": "dataDir",
                        "value": "/var/workdir/release"
                    },
                    {
                        "name": "trustedArtifactsDebug",
                        "value": ""
                    },
                    {
                        "name": "taskGitUrl",
                        "value": "https://github.com/swickersh/release-service-catalog"
                    },
                    {
                        "name": "taskGitRevision",
                        "value": "4d8f5d74eb4405ac637042fde05a3330b26bb548"
                    },
                    {
                        "name": "failOnMissing",
                        "value": "false"
                    }
                ],
                "serviceAccountName": "release-service-account",
                "taskRef": {
                    "params": [
                        {
                            "name": "url",
                            "value": "https://github.com/swickersh/release-service-catalog"
                        },
                        {
                            "name": "revision",
                            "value": "4d8f5d74eb4405ac637042fde05a3330b26bb548"
                        },
                        {
                            "name": "pathInRepo",
                            "value": "tasks/managed/collect-tpa-params/collect-tpa-params.yaml"
                        }
                    ],
                    "resolver": "git"
                },
                "timeout": "3h50m0s"
            },
            "status": {
                "artifacts": {},
                "completionTime": "2026-08-26T17:52:37Z",
                "conditions": [
                    {
                        "lastTransitionTime": "2026-08-26T17:52:37Z",
                        "message": "All Steps have completed executing",
                        "reason": "Succeeded",
                        "status": "True",
                        "type": "Succeeded"
                    }
                ],
                "podName": "managed-hgppl-collect-tpa-params-pod",
                "provenance": {
                    "featureFlags": {
                        "awaitSidecarReadiness": true,
                        "coschedule": "workspaces",
                        "enableAPIFields": "beta",
                        "enableProvenanceInStatus": true,
                        "enforceNonfalsifiability": "none",
                        "maxResultSize": 4096,
                        "resultExtractionMethod": "termination-message",
                        "runningInEnvWithInjectedSidecars": true,
                        "sendCloudEventsForRuns": true,
                        "verificationNoMatchPolicy": "ignore"
                    },
                    "refSource": {
                        "digest": {
                            "sha1": "4d8f5d74eb4405ac637042fde05a3330b26bb548"
                        },
                        "entryPoint": "tasks/managed/collect-tpa-params/collect-tpa-params.yaml",
                        "uri": "git+https://github.com/swickersh/release-service-catalog"
                    }
                },
                "results": [
                    {
                        "name": "atlasApiUrl",
                        "type": "string",
                        "value": ""
                    },
                    {
                        "name": "retryAWSSecretName",
                        "type": "string",
                        "value": ""
                    },
                    {
                        "name": "retryS3Bucket",
                        "type": "string",
                        "value": ""
                    },
                    {
                        "name": "secretName",
                        "type": "string",
                        "value": ""
                    },
                    {
                        "name": "ssoTokenUrl",
                        "type": "string",
                        "value": ""
                    }
                ],
                "startTime": "2026-08-26T17:51:57Z",
                "steps": [
                    {
                        "container": "step-use-trusted-artifact",
                        "imageID": "quay.io/konflux-ci/build-trusted-artifacts@sha256:9bd32f6bafb517b309e11a2d89365052b4ab3f1c9c23c4ffd45aff6f03960476",
                        "name": "use-trusted-artifact",
                        "provenance": {},
                        "terminated": {
                            "containerID": "containerd://e2a25ff0e167443d66b09d28b0740679c55d2519d1937fe3ef97edbef0897199",
                            "exitCode": 0,
                            "finishedAt": "2026-08-26T17:52:35Z",
                            "reason": "Completed",
                            "startedAt": "2026-08-26T17:52:34Z"
                        },
                        "terminationReason": "Completed"
                    },
                    {
                        "container": "step-collect-tpa-params",
                        "imageID": "quay.io/konflux-ci/release-service-utils@sha256:a22a1ee0cc1a50e9eafbe141297d0660f7e3098474d19f663f482ff471cced20",
                        "name": "collect-tpa-params",
                        "provenance": {},
                        "terminated": {
                            "containerID": "containerd://2b37501dafcd33c79f1f8a8182082b19782083fc2b9ef3fdc8033dd2e90bb8a0",
                            "exitCode": 0,
                            "finishedAt": "2026-08-26T17:52:36Z",
                            "message": "[{\"key\":\"atlasApiUrl\",\"value\":\"\",\"type\":1},{\"key\":\"retryAWSSecretName\",\"value\":\"\",\"type\":1},{\"key\":\"retryS3Bucket\",\"value\":\"\",\"type\":1},{\"key\":\"secretName\",\"value\":\"\",\"type\":1},{\"key\":\"ssoTokenUrl\",\"value\":\"\",\"type\":1}]",
                            "reason": "Completed",
                            "startedAt": "2026-08-26T17:52:35Z"
                        },
                        "terminationReason": "Completed"
                    }
                ],
                "taskSpec": {
                    "description": "Tekton task that collects the TPA server option from the data file.\nIt can either parse the cluster configuration stored in konflux-info\nnamespace or parse a dataPath JSON file for values.\n\nIf the desired configmap is present in konflux-info, it will be used\nas a preferred option.\n\nOtherwise it outputs values based on the value of the \"atlas.server\" or\n\"tpa.servers\" field (\"stage\" or \"production\"), the output values are used\nto push SBOMs to TPA. Also outputs results used to push SBOMs to an S3\nbucket.\n\nIf the configmap in konflux-info cannot be parsed and no TPA fields\nare present in the data file, the task fails. If this is undesired,\nthe task can be configured to return empty results instead by setting\nthe parameter 'failOnMissing' to 'false'.",
                    "params": [
                        {
                            "default": "",
                            "description": "Path to the JSON string of the merged data containing the TPA config\n",
                            "name": "dataPath",
                            "type": "string"
                        },
                        {
                            "default": "empty",
                            "description": "The OCI repository where the Trusted Artifacts are stored",
                            "name": "ociStorage",
                            "type": "string"
                        },
                        {
                            "default": "1d",
                            "description": "Expiration date for the trusted artifacts created in the OCI repository. An empty string means the artifacts do not expire",
                            "name": "ociArtifactExpiresAfter",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Flag to enable debug logging in trusted artifacts. Set to a non-empty string to enable",
                            "name": "trustedArtifactsDebug",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "oras options to pass to Trusted Artifacts calls",
                            "name": "orasOptions",
                            "type": "string"
                        },
                        {
                            "default": "/mnt/trusted-ca/ca-bundle.crt",
                            "description": "Path to CA certificate bundle for TLS verification with self-signed certificates",
                            "name": "caCertPath",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Location of trusted artifacts to be used to populate data directory",
                            "name": "sourceDataArtifact",
                            "type": "string"
                        },
                        {
                            "default": "/var/workdir/release",
                            "description": "The location where data will be stored",
                            "name": "dataDir",
                            "type": "string"
                        },
                        {
                            "description": "The url to the git repo where the release-service-catalog tasks and stepactions to be used are stored",
                            "name": "taskGitUrl",
                            "type": "string"
                        },
                        {
                            "description": "The revision in the taskGitUrl repo to be used",
                            "name": "taskGitRevision",
                            "type": "string"
                        },
                        {
                            "default": "trusted-ca",
                            "description": "The name of the ConfigMap to read CA bundle data from",
                            "name": "caTrustConfigMapName",
                            "type": "string"
                        },
                        {
                            "default": "ca-bundle.crt",
                            "description": "The name of the key in the ConfigMap that contains the CA bundle data",
                            "name": "caTrustConfigMapKey",
                            "type": "string"
                        },
                        {
                            "default": "konflux-info",
                            "description": "The namespace where the ConfigMap is located",
                            "name": "configMapNamespace",
                            "type": "string"
                        },
                        {
                            "default": "cluster-config",
                            "description": "The name of the ConfigMap to read TPA parameters from",
                            "name": "configMapName",
                            "type": "string"
                        },
                        {
                            "default": "true",
                            "description": "Specify if this task should fail on missing parameters",
                            "name": "failOnMissing",
                            "type": "string"
                        }
                    ],
                    "results": [
                        {
                            "description": "URL of the TPA API.\n",
                            "name": "atlasApiUrl",
                            "type": "string"
                        },
                        {
                            "description": "URL of the SSO token issuer.\n",
                            "name": "ssoTokenUrl",
                            "type": "string"
                        },
                        {
                            "description": "The kubernetes secret to use to authenticate to TPA.\n",
                            "name": "secretName",
                            "type": "string"
                        },
                        {
                            "description": "The kubernetes secret to use to authenticate to the S3 retry mechanism bucket.\n",
                            "name": "retryAWSSecretName",
                            "type": "string"
                        },
                        {
                            "description": "Name of the S3 retry mechanism bucket.\n",
                            "name": "retryS3Bucket",
                            "type": "string"
                        }
                    ],
                    "stepTemplate": {
                        "computeResources": {},
                        "env": [
                            {
                                "name": "IMAGE_EXPIRES_AFTER",
                                "value": "1d"
                            },
                            {
                                "name": "ORAS_OPTIONS"
                            },
                            {
                                "name": "DEBUG"
                            }
                        ],
                        "securityContext": {
                            "runAsUser": 1001
                        },
                        "volumeMounts": [
                            {
                                "mountPath": "/var/workdir",
                                "name": "workdir"
                            },
                            {
                                "mountPath": "/mnt/trusted-ca",
                                "name": "trusted-ca",
                                "readOnly": true
                            }
                        ]
                    },
                    "steps": [
                        {
                            "args": [
                                "use",
                                "oci:quay-service.quay/test-org/trusted-artifacts@sha256:fb7aea1a4762e1869e9f188c03e0db2cad0ef55d35963b0134f5b2bf5f30fce0=/var/workdir/release"
                            ],
                            "computeResources": {
                                "limits": {
                                    "memory": "64Mi"
                                },
                                "requests": {
                                    "cpu": "30m",
                                    "memory": "64Mi"
                                }
                            },
                            "env": [
                                {
                                    "name": "HOME",
                                    "value": "/tekton/home"
                                },
                                {
                                    "name": "ORAS_OPTIONS"
                                },
                                {
                                    "name": "CA_FILE",
                                    "value": "/mnt/trusted-ca/ca-bundle.crt"
                                }
                            ],
                            "image": "quay.io/konflux-ci/build-trusted-artifacts@sha256:9bd32f6bafb517b309e11a2d89365052b4ab3f1c9c23c4ffd45aff6f03960476",
                            "name": "use-trusted-artifact"
                        },
                        {
                            "args": [
                                "--data-dir",
                                "/var/workdir/release",
                                "--data-path",
                                "add9a4ba-a70a-422c-b994-67c1bcbfd6b8/data.json",
                                "--configmap-name",
                                "cluster-config",
                                "--configmap-namespace",
                                "konflux-info",
                                "--fail-on-missing",
                                "false"
                            ],
                            "command": [
                                "python3",
                                "-m",
                                "collect_tpa_params"
                            ],
                            "computeResources": {
                                "limits": {
                                    "memory": "192Mi"
                                },
                                "requests": {
                                    "cpu": "50m",
                                    "memory": "192Mi"
                                }
                            },
                            "env": [
                                {
                                    "name": "RESULT_ATLAS_API_URL",
                                    "value": "/tekton/results/atlasApiUrl"
                                },
                                {
                                    "name": "RESULT_SSO_TOKEN_URL",
                                    "value": "/tekton/results/ssoTokenUrl"
                                },
                                {
                                    "name": "RESULT_SECRET_NAME",
                                    "value": "/tekton/results/secretName"
                                },
                                {
                                    "name": "RESULT_RETRY_AWS_SECRET_NAME",
                                    "value": "/tekton/results/retryAWSSecretName"
                                },
                                {
                                    "name": "RESULT_RETRY_S3_BUCKET",
                                    "value": "/tekton/results/retryS3Bucket"
                                }
                            ],
                            "image": "quay.io/konflux-ci/release-service-utils@sha256:a22a1ee0cc1a50e9eafbe141297d0660f7e3098474d19f663f482ff471cced20",
                            "name": "collect-tpa-params"
                        }
                    ],
                    "volumes": [
                        {
                            "emptyDir": {},
                            "name": "workdir"
                        },
                        {
                            "configMap": {
                                "items": [
                                    {
                                        "key": "ca-bundle.crt",
                                        "path": "ca-bundle.crt"
                                    }
                                ],
                                "name": "trusted-ca",
                                "optional": true
                            },
                            "name": "trusted-ca"
                        }
                    ]
                }
            }
        },
        {
            "apiVersion": "tekton.dev/v1",
            "kind": "TaskRun",
            "metadata": {
                "annotations": {
                    "chains.tekton.dev/signed": "true",
                    "operator-sdk/primary-resource": "ex-registry-sh-869ae581/snapshot-sample-869ae581-bsrlj",
                    "operator-sdk/primary-resource-type": "Release.appstudio.redhat.com",
                    "pipeline.tekton.dev/release": "70f7308",
                    "results.tekton.dev/childReadyForDeletion": "true",
                    "results.tekton.dev/record": "ex-registry-sh-managed-869ae581/results/add9a4ba-a70a-422c-b994-67c1bcbfd6b8/records/13fc788f-8b52-45a2-adcd-4c40872b86db",
                    "results.tekton.dev/result": "ex-registry-sh-managed-869ae581/results/add9a4ba-a70a-422c-b994-67c1bcbfd6b8",
                    "results.tekton.dev/stored": "true",
                    "tekton.dev/pipelines.minVersion": "0.12.1",
                    "tekton.dev/tags": "release"
                },
                "creationTimestamp": "2026-08-26T17:51:10Z",
                "finalizers": [
                    "chains.tekton.dev/taskrun",
                    "results.tekton.dev/taskrun"
                ],
                "generation": 1,
                "labels": {
                    "app.kubernetes.io/managed-by": "tekton-pipelines",
                    "appstudio.openshift.io/application": "appstudio",
                    "appstudio.openshift.io/service": "release",
                    "appstudio.openshift.io/snapshot": "snapshot-sample-869ae581",
                    "pipelines.appstudio.openshift.io/type": "managed",
                    "release.appstudio.openshift.io/attempt": "0",
                    "release.appstudio.openshift.io/name": "snapshot-sample-869ae581-bsrlj",
                    "release.appstudio.openshift.io/namespace": "ex-registry-sh-869ae581",
                    "tekton.dev/memberOf": "tasks",
                    "tekton.dev/pipeline": "push-to-external-registry",
                    "tekton.dev/pipelineRun": "managed-hgppl",
                    "tekton.dev/pipelineRunUID": "add9a4ba-a70a-422c-b994-67c1bcbfd6b8",
                    "tekton.dev/pipelineTask": "filter-already-released-images",
                    "tekton.dev/task": "filter-already-released-images"
                },
                "name": "managed-hgppl-filter-already-released-images",
                "namespace": "ex-registry-sh-managed-869ae581",
                "ownerReferences": [
                    {
                        "apiVersion": "tekton.dev/v1",
                        "blockOwnerDeletion": true,
                        "controller": true,
                        "kind": "PipelineRun",
                        "name": "managed-hgppl",
                        "uid": "add9a4ba-a70a-422c-b994-67c1bcbfd6b8"
                    }
                ],
                "resourceVersion": "10861",
                "uid": "13fc788f-8b52-45a2-adcd-4c40872b86db"
            },
            "spec": {
                "params": [
                    {
                        "name": "snapshotPath",
                        "value": "add9a4ba-a70a-422c-b994-67c1bcbfd6b8/snapshot_spec.json"
                    },
                    {
                        "name": "ociStorage",
                        "value": "quay-service.quay/test-org/trusted-artifacts"
                    },
                    {
                        "name": "sourceDataArtifact",
                        "value": "oci:quay-service.quay/test-org/trusted-artifacts@sha256:796060eab5e88d382728c562b7ace0df1ccd88413715d8358f2e671a86bd3644"
                    },
                    {
                        "name": "dataDir",
                        "value": "/var/workdir/release"
                    },
                    {
                        "name": "trustedArtifactsDebug",
                        "value": ""
                    },
                    {
                        "name": "taskGitUrl",
                        "value": "https://github.com/swickersh/release-service-catalog"
                    },
                    {
                        "name": "taskGitRevision",
                        "value": "4d8f5d74eb4405ac637042fde05a3330b26bb548"
                    }
                ],
                "serviceAccountName": "release-service-account",
                "taskRef": {
                    "params": [
                        {
                            "name": "url",
                            "value": "https://github.com/swickersh/release-service-catalog"
                        },
                        {
                            "name": "revision",
                            "value": "4d8f5d74eb4405ac637042fde05a3330b26bb548"
                        },
                        {
                            "name": "pathInRepo",
                            "value": "tasks/managed/filter-already-released-images/filter-already-released-images.yaml"
                        }
                    ],
                    "resolver": "git"
                },
                "timeout": "3h50m0s"
            },
            "status": {
                "artifacts": {},
                "completionTime": "2026-08-26T17:51:56Z",
                "conditions": [
                    {
                        "lastTransitionTime": "2026-08-26T17:51:56Z",
                        "message": "All Steps have completed executing",
                        "reason": "Succeeded",
                        "status": "True",
                        "type": "Succeeded"
                    }
                ],
                "podName": "managed-hgppl-filter-already-released-images-pod",
                "provenance": {
                    "featureFlags": {
                        "awaitSidecarReadiness": true,
                        "coschedule": "workspaces",
                        "enableAPIFields": "beta",
                        "enableProvenanceInStatus": true,
                        "enforceNonfalsifiability": "none",
                        "maxResultSize": 4096,
                        "resultExtractionMethod": "termination-message",
                        "runningInEnvWithInjectedSidecars": true,
                        "sendCloudEventsForRuns": true,
                        "verificationNoMatchPolicy": "ignore"
                    },
                    "refSource": {
                        "digest": {
                            "sha1": "4d8f5d74eb4405ac637042fde05a3330b26bb548"
                        },
                        "entryPoint": "tasks/managed/filter-already-released-images/filter-already-released-images.yaml",
                        "uri": "git+https://github.com/swickersh/release-service-catalog"
                    }
                },
                "results": [
                    {
                        "name": "skip_release",
                        "type": "string",
                        "value": "false"
                    },
                    {
                        "name": "sourceDataArtifact",
                        "type": "string",
                        "value": "oci:quay-service.quay/test-org/trusted-artifacts@sha256:b122aa1c690395e2110a897eda2b3c89ebc36bf056b00601b0ef35f1907dfbe0"
                    }
                ],
                "startTime": "2026-08-26T17:51:10Z",
                "steps": [
                    {
                        "container": "step-use-trusted-artifact",
                        "imageID": "quay.io/konflux-ci/build-trusted-artifacts@sha256:9bd32f6bafb517b309e11a2d89365052b4ab3f1c9c23c4ffd45aff6f03960476",
                        "name": "use-trusted-artifact",
                        "provenance": {},
                        "terminated": {
                            "containerID": "containerd://69bf3a03f9c744570df5817df28209dde5b8f98ac8a1b1b820fba448db2a09c7",
                            "exitCode": 0,
                            "finishedAt": "2026-08-26T17:51:53Z",
                            "reason": "Completed",
                            "startedAt": "2026-08-26T17:51:53Z"
                        },
                        "terminationReason": "Completed"
                    },
                    {
                        "container": "step-filter-already-released-images",
                        "imageID": "quay.io/konflux-ci/release-service-utils@sha256:83fefd72e54d3b87017a12dbe483db52ad1c692e1aec9ab042c1382a0c41e550",
                        "name": "filter-already-released-images",
                        "provenance": {},
                        "terminated": {
                            "containerID": "containerd://e946cb6ac7c69ca93a66f5ca9d1e24c407a9ccd0ddd54b04ede42f9d7241d0e9",
                            "exitCode": 0,
                            "finishedAt": "2026-08-26T17:51:54Z",
                            "message": "[{\"key\":\"skip_release\",\"value\":\"false\",\"type\":1}]",
                            "reason": "Completed",
                            "startedAt": "2026-08-26T17:51:54Z"
                        },
                        "terminationReason": "Completed"
                    },
                    {
                        "container": "step-create-trusted-artifact",
                        "imageID": "quay.io/konflux-ci/build-trusted-artifacts@sha256:9bd32f6bafb517b309e11a2d89365052b4ab3f1c9c23c4ffd45aff6f03960476",
                        "name": "create-trusted-artifact",
                        "provenance": {},
                        "terminated": {
                            "containerID": "containerd://95852725977449a974dcf60e230db59f20351bd950b3631b7aa7e4a149be9f2c",
                            "exitCode": 0,
                            "finishedAt": "2026-08-26T17:51:55Z",
                            "message": "[{\"key\":\"skip_release\",\"value\":\"false\",\"type\":1},{\"key\":\"sourceDataArtifact\",\"value\":\"oci:quay-service.quay/test-org/trusted-artifacts@sha256:b122aa1c690395e2110a897eda2b3c89ebc36bf056b00601b0ef35f1907dfbe0\",\"type\":1}]",
                            "reason": "Completed",
                            "startedAt": "2026-08-26T17:51:55Z"
                        },
                        "terminationReason": "Completed"
                    }
                ],
                "taskSpec": {
                    "description": "Tekton task to filter out images from a snapshot that have already been released.\nThis task checks target registries to determine if push-snapshot has completed successfully\nfor each component by validating that ALL required tags exist with the correct digest.\nComponents that are fully released (all tags present) are filtered out before conforma validation.\n\nTag-level validation ensures complete releases and prevents filtering components with\npartial tag pushes. A component is only filtered if ALL repositories have ALL\nrequired tags pointing to the correct digest.\n\nThe task overwrites the original snapshot file in place with a filtered version\ncontaining only unpublished or partially published images.\n\nThis task must run AFTER apply-mapping since it needs the mapped target repositories\nand their required tags from the enriched snapshot stored in trusted artifacts",
                    "params": [
                        {
                            "description": "Path to the JSON string of the Snapshot spec in the data workspace",
                            "name": "snapshotPath",
                            "type": "string"
                        },
                        {
                            "default": "empty",
                            "description": "The OCI repository where the Trusted Artifacts are stored",
                            "name": "ociStorage",
                            "type": "string"
                        },
                        {
                            "default": "1d",
                            "description": "Expiration date for the trusted artifacts created in the OCI repository.\nAn empty string means the artifacts do not expire",
                            "name": "ociArtifactExpiresAfter",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Flag to enable debug logging in trusted artifacts. Set to a non-empty string to enable",
                            "name": "trustedArtifactsDebug",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "oras options to pass to Trusted Artifacts calls",
                            "name": "orasOptions",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Location of trusted artifacts to be used to populate data directory",
                            "name": "sourceDataArtifact",
                            "type": "string"
                        },
                        {
                            "default": "/var/workdir/release",
                            "description": "The location where data will be stored",
                            "name": "dataDir",
                            "type": "string"
                        },
                        {
                            "default": "https://github.com/konflux-ci/release-service-catalog.git",
                            "description": "The url to the git repo where the release-service-catalog tasks to be used are stored",
                            "name": "taskGitUrl",
                            "type": "string"
                        },
                        {
                            "description": "The revision in the taskGitUrl repo to be used",
                            "name": "taskGitRevision",
                            "type": "string"
                        },
                        {
                            "default": "trusted-ca",
                            "description": "The name of the ConfigMap to read CA bundle data from",
                            "name": "caTrustConfigMapName",
                            "type": "string"
                        },
                        {
                            "default": "ca-bundle.crt",
                            "description": "The name of the key in the ConfigMap that contains the CA bundle data",
                            "name": "caTrustConfigMapKey",
                            "type": "string"
                        },
                        {
                            "default": "/mnt/trusted-ca/ca-bundle.crt",
                            "description": "Path to CA certificate bundle for TLS verification with self-signed certificates",
                            "name": "caCertPath",
                            "type": "string"
                        }
                    ],
                    "results": [
                        {
                            "description": "Whether to skip release tasks (true if all components are already released)",
                            "name": "skip_release",
                            "type": "string"
                        },
                        {
                            "description": "The location of the source data artifact in the OCI repository",
                            "name": "sourceDataArtifact",
                            "type": "string"
                        }
                    ],
                    "stepTemplate": {
                        "computeResources": {},
                        "env": [
                            {
                                "name": "IMAGE_EXPIRES_AFTER",
                                "value": "1d"
                            },
                            {
                                "name": "ORAS_OPTIONS"
                            },
                            {
                                "name": "DEBUG"
                            }
                        ],
                        "securityContext": {
                            "runAsUser": 1001
                        },
                        "volumeMounts": [
                            {
                                "mountPath": "/var/workdir",
                                "name": "workdir"
                            },
                            {
                                "mountPath": "/mnt/trusted-ca",
                                "name": "trusted-ca",
                                "readOnly": true
                            }
                        ]
                    },
                    "steps": [
                        {
                            "args": [
                                "use",
                                "oci:quay-service.quay/test-org/trusted-artifacts@sha256:796060eab5e88d382728c562b7ace0df1ccd88413715d8358f2e671a86bd3644=/var/workdir/release"
                            ],
                            "computeResources": {
                                "limits": {
                                    "memory": "64Mi"
                                },
                                "requests": {
                                    "cpu": "30m",
                                    "memory": "64Mi"
                                }
                            },
                            "env": [
                                {
                                    "name": "HOME",
                                    "value": "/tekton/home"
                                },
                                {
                                    "name": "ORAS_OPTIONS"
                                },
                                {
                                    "name": "CA_FILE",
                                    "value": "/mnt/trusted-ca/ca-bundle.crt"
                                }
                            ],
                            "image": "quay.io/konflux-ci/build-trusted-artifacts@sha256:9bd32f6bafb517b309e11a2d89365052b4ab3f1c9c23c4ffd45aff6f03960476",
                            "name": "use-trusted-artifact"
                        },
                        {
                            "args": [
                                "--snapshot-path",
                                "/var/workdir/release/add9a4ba-a70a-422c-b994-67c1bcbfd6b8/snapshot_spec.json"
                            ],
                            "command": [
                                "/home/scripts/python/tasks/managed/filter_already_released_images.py"
                            ],
                            "computeResources": {
                                "limits": {
                                    "memory": "1536Mi"
                                },
                                "requests": {
                                    "cpu": "300m",
                                    "memory": "1536Mi"
                                }
                            },
                            "env": [
                                {
                                    "name": "RESULT_SKIP_RELEASE",
                                    "value": "/tekton/results/skip_release"
                                },
                                {
                                    "name": "CA_CERT_PATH",
                                    "value": "/mnt/trusted-ca/ca-bundle.crt"
                                }
                            ],
                            "image": "quay.io/konflux-ci/release-service-utils@sha256:83fefd72e54d3b87017a12dbe483db52ad1c692e1aec9ab042c1382a0c41e550",
                            "name": "filter-already-released-images"
                        },
                        {
                            "args": [
                                "create",
                                "--store",
                                "quay-service.quay/test-org/trusted-artifacts",
                                "/tekton/results/sourceDataArtifact=/var/workdir/release"
                            ],
                            "computeResources": {
                                "limits": {
                                    "memory": "128Mi"
                                },
                                "requests": {
                                    "cpu": "250m",
                                    "memory": "128Mi"
                                }
                            },
                            "env": [
                                {
                                    "name": "HOME",
                                    "value": "/tekton/home"
                                },
                                {
                                    "name": "ORAS_OPTIONS"
                                },
                                {
                                    "name": "CA_FILE",
                                    "value": "/mnt/trusted-ca/ca-bundle.crt"
                                }
                            ],
                            "image": "quay.io/konflux-ci/build-trusted-artifacts@sha256:9bd32f6bafb517b309e11a2d89365052b4ab3f1c9c23c4ffd45aff6f03960476",
                            "name": "create-trusted-artifact"
                        }
                    ],
                    "volumes": [
                        {
                            "emptyDir": {},
                            "name": "workdir"
                        },
                        {
                            "configMap": {
                                "items": [
                                    {
                                        "key": "ca-bundle.crt",
                                        "path": "ca-bundle.crt"
                                    }
                                ],
                                "name": "trusted-ca",
                                "optional": true
                            },
                            "name": "trusted-ca"
                        }
                    ]
                }
            }
        },
        {
            "apiVersion": "tekton.dev/v1",
            "kind": "TaskRun",
            "metadata": {
                "annotations": {
                    "chains.tekton.dev/signed": "true",
                    "operator-sdk/primary-resource": "ex-registry-sh-869ae581/snapshot-sample-869ae581-bsrlj",
                    "operator-sdk/primary-resource-type": "Release.appstudio.redhat.com",
                    "pipeline.tekton.dev/release": "70f7308",
                    "results.tekton.dev/childReadyForDeletion": "true",
                    "results.tekton.dev/record": "ex-registry-sh-managed-869ae581/results/add9a4ba-a70a-422c-b994-67c1bcbfd6b8/records/0e8c4e71-c5f2-47c6-bc8f-8b84bc45ded3",
                    "results.tekton.dev/result": "ex-registry-sh-managed-869ae581/results/add9a4ba-a70a-422c-b994-67c1bcbfd6b8",
                    "results.tekton.dev/stored": "true",
                    "tekton.dev/pipelines.minVersion": "0.12.1",
                    "tekton.dev/tags": "release"
                },
                "creationTimestamp": "2026-08-26T17:53:27Z",
                "finalizers": [
                    "chains.tekton.dev/taskrun",
                    "results.tekton.dev/taskrun"
                ],
                "generation": 1,
                "labels": {
                    "app.kubernetes.io/managed-by": "tekton-pipelines",
                    "appstudio.openshift.io/application": "appstudio",
                    "appstudio.openshift.io/service": "release",
                    "appstudio.openshift.io/snapshot": "snapshot-sample-869ae581",
                    "pipelines.appstudio.openshift.io/type": "managed",
                    "release.appstudio.openshift.io/attempt": "0",
                    "release.appstudio.openshift.io/name": "snapshot-sample-869ae581-bsrlj",
                    "release.appstudio.openshift.io/namespace": "ex-registry-sh-869ae581",
                    "tekton.dev/memberOf": "tasks",
                    "tekton.dev/pipeline": "push-to-external-registry",
                    "tekton.dev/pipelineRun": "managed-hgppl",
                    "tekton.dev/pipelineRunUID": "add9a4ba-a70a-422c-b994-67c1bcbfd6b8",
                    "tekton.dev/pipelineTask": "make-repo-public"
                },
                "name": "managed-hgppl-make-repo-public",
                "namespace": "ex-registry-sh-managed-869ae581",
                "ownerReferences": [
                    {
                        "apiVersion": "tekton.dev/v1",
                        "blockOwnerDeletion": true,
                        "controller": true,
                        "kind": "PipelineRun",
                        "name": "managed-hgppl",
                        "uid": "add9a4ba-a70a-422c-b994-67c1bcbfd6b8"
                    }
                ],
                "resourceVersion": "12122",
                "uid": "0e8c4e71-c5f2-47c6-bc8f-8b84bc45ded3"
            },
            "spec": {
                "params": [
                    {
                        "name": "dataPath",
                        "value": "add9a4ba-a70a-422c-b994-67c1bcbfd6b8/data.json"
                    },
                    {
                        "name": "snapshotPath",
                        "value": "add9a4ba-a70a-422c-b994-67c1bcbfd6b8/snapshot_spec.json"
                    },
                    {
                        "name": "registrySecret",
                        "value": "quay-api-token"
                    },
                    {
                        "name": "ociStorage",
                        "value": "quay-service.quay/test-org/trusted-artifacts"
                    },
                    {
                        "name": "sourceDataArtifact",
                        "value": "oci:quay-service.quay/test-org/trusted-artifacts@sha256:f035b439f961c2bfbe1e19526039b26d5070d98eb7366dc8d9135d8e8e90f379"
                    },
                    {
                        "name": "dataDir",
                        "value": "/var/workdir/release"
                    },
                    {
                        "name": "trustedArtifactsDebug",
                        "value": ""
                    },
                    {
                        "name": "taskGitUrl",
                        "value": "https://github.com/swickersh/release-service-catalog"
                    },
                    {
                        "name": "taskGitRevision",
                        "value": "4d8f5d74eb4405ac637042fde05a3330b26bb548"
                    }
                ],
                "retries": 5,
                "serviceAccountName": "release-service-account",
                "taskRef": {
                    "params": [
                        {
                            "name": "url",
                            "value": "https://github.com/swickersh/release-service-catalog"
                        },
                        {
                            "name": "revision",
                            "value": "4d8f5d74eb4405ac637042fde05a3330b26bb548"
                        },
                        {
                            "name": "pathInRepo",
                            "value": "tasks/managed/make-repo-public/make-repo-public.yaml"
                        }
                    ],
                    "resolver": "git"
                },
                "timeout": "3h50m0s"
            },
            "status": {
                "artifacts": {},
                "completionTime": "2026-08-26T17:54:05Z",
                "conditions": [
                    {
                        "lastTransitionTime": "2026-08-26T17:54:05Z",
                        "message": "All Steps have completed executing",
                        "reason": "Succeeded",
                        "status": "True",
                        "type": "Succeeded"
                    }
                ],
                "podName": "managed-hgppl-make-repo-public-pod",
                "provenance": {
                    "featureFlags": {
                        "awaitSidecarReadiness": true,
                        "coschedule": "workspaces",
                        "enableAPIFields": "beta",
                        "enableProvenanceInStatus": true,
                        "enforceNonfalsifiability": "none",
                        "maxResultSize": 4096,
                        "resultExtractionMethod": "termination-message",
                        "runningInEnvWithInjectedSidecars": true,
                        "sendCloudEventsForRuns": true,
                        "verificationNoMatchPolicy": "ignore"
                    },
                    "refSource": {
                        "digest": {
                            "sha1": "4d8f5d74eb4405ac637042fde05a3330b26bb548"
                        },
                        "entryPoint": "tasks/managed/make-repo-public/make-repo-public.yaml",
                        "uri": "git+https://github.com/swickersh/release-service-catalog"
                    }
                },
                "results": [
                    {
                        "name": "sourceDataArtifact",
                        "type": "string",
                        "value": "oci:quay-service.quay/test-org/trusted-artifacts@sha256:8a1291684528121123531089aa5fcd4ff1636c03960370e5b3c8d2e111868371"
                    }
                ],
                "startTime": "2026-08-26T17:53:27Z",
                "steps": [
                    {
                        "container": "step-use-trusted-artifact",
                        "imageID": "quay.io/konflux-ci/build-trusted-artifacts@sha256:9bd32f6bafb517b309e11a2d89365052b4ab3f1c9c23c4ffd45aff6f03960476",
                        "name": "use-trusted-artifact",
                        "provenance": {},
                        "terminated": {
                            "containerID": "containerd://fdd153cfda8aa64bfade911a5985490467e0047ef17a4573b2dd25feb4354732",
                            "exitCode": 0,
                            "finishedAt": "2026-08-26T17:54:02Z",
                            "reason": "Completed",
                            "startedAt": "2026-08-26T17:54:02Z"
                        },
                        "terminationReason": "Completed"
                    },
                    {
                        "container": "step-make-repo-public",
                        "imageID": "quay.io/konflux-ci/release-service-utils@sha256:67bb57a671d7e1b8d51ee07cefcca4ac46db02b8c3a9ee8fad60fb9365aab324",
                        "name": "make-repo-public",
                        "provenance": {},
                        "terminated": {
                            "containerID": "containerd://807589e940a7c185495b7155354d856903fa98c5da32977938267b68287cdc90",
                            "exitCode": 0,
                            "finishedAt": "2026-08-26T17:54:03Z",
                            "reason": "Completed",
                            "startedAt": "2026-08-26T17:54:02Z"
                        },
                        "terminationReason": "Completed"
                    },
                    {
                        "container": "step-create-trusted-artifact",
                        "imageID": "quay.io/konflux-ci/build-trusted-artifacts@sha256:9bd32f6bafb517b309e11a2d89365052b4ab3f1c9c23c4ffd45aff6f03960476",
                        "name": "create-trusted-artifact",
                        "provenance": {},
                        "terminated": {
                            "containerID": "containerd://88de2013a4ea0e12f6496f623c2f2297022c59393ac6089f8822b9644a0f93b5",
                            "exitCode": 0,
                            "finishedAt": "2026-08-26T17:54:04Z",
                            "message": "[{\"key\":\"sourceDataArtifact\",\"value\":\"oci:quay-service.quay/test-org/trusted-artifacts@sha256:8a1291684528121123531089aa5fcd4ff1636c03960370e5b3c8d2e111868371\",\"type\":1}]",
                            "reason": "Completed",
                            "startedAt": "2026-08-26T17:54:04Z"
                        },
                        "terminationReason": "Completed"
                    }
                ],
                "taskSpec": {
                    "description": "Tekton task that makes repositories public using the Quay API",
                    "params": [
                        {
                            "description": "Path to the merged data JSON file generated by collect-data task",
                            "name": "dataPath",
                            "type": "string"
                        },
                        {
                            "description": "Path to the JSON string of the Snapshot spec in the data workspace",
                            "name": "snapshotPath",
                            "type": "string"
                        },
                        {
                            "description": "The kube secret to use the Quay API, containing one key: token",
                            "name": "registrySecret",
                            "type": "string"
                        },
                        {
                            "default": "empty",
                            "description": "The OCI repository where the Trusted Artifacts are stored",
                            "name": "ociStorage",
                            "type": "string"
                        },
                        {
                            "default": "1d",
                            "description": "Expiration date for the trusted artifacts created in the OCI repository. An empty string means the artifacts do not expire",
                            "name": "ociArtifactExpiresAfter",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Flag to enable debug logging in trusted artifacts. Set to a non-empty string to enable",
                            "name": "trustedArtifactsDebug",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "oras options to pass to Trusted Artifacts calls",
                            "name": "orasOptions",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Location of trusted artifacts to be used to populate data directory",
                            "name": "sourceDataArtifact",
                            "type": "string"
                        },
                        {
                            "default": "/var/workdir/release",
                            "description": "The location where data will be stored",
                            "name": "dataDir",
                            "type": "string"
                        },
                        {
                            "description": "The url to the git repo where the release-service-catalog tasks and stepactions to be used are stored",
                            "name": "taskGitUrl",
                            "type": "string"
                        },
                        {
                            "description": "The revision in the taskGitUrl repo to be used",
                            "name": "taskGitRevision",
                            "type": "string"
                        },
                        {
                            "default": "trusted-ca",
                            "description": "The name of the ConfigMap to read CA bundle data from",
                            "name": "caTrustConfigMapName",
                            "type": "string"
                        },
                        {
                            "default": "ca-bundle.crt",
                            "description": "The name of the key in the ConfigMap that contains the CA bundle data",
                            "name": "caTrustConfigMapKey",
                            "type": "string"
                        },
                        {
                            "default": "/mnt/trusted-ca/ca-bundle.crt",
                            "description": "Path to CA certificate bundle for TLS verification with self-signed certificates",
                            "name": "caCertPath",
                            "type": "string"
                        }
                    ],
                    "results": [
                        {
                            "description": "Produced trusted data artifact",
                            "name": "sourceDataArtifact",
                            "type": "string"
                        }
                    ],
                    "stepTemplate": {
                        "computeResources": {},
                        "env": [
                            {
                                "name": "IMAGE_EXPIRES_AFTER",
                                "value": "1d"
                            },
                            {
                                "name": "ORAS_OPTIONS"
                            },
                            {
                                "name": "DEBUG"
                            }
                        ],
                        "securityContext": {
                            "runAsUser": 1001
                        },
                        "volumeMounts": [
                            {
                                "mountPath": "/var/workdir",
                                "name": "workdir"
                            },
                            {
                                "mountPath": "/mnt/trusted-ca",
                                "name": "trusted-ca",
                                "readOnly": true
                            }
                        ]
                    },
                    "steps": [
                        {
                            "args": [
                                "use",
                                "oci:quay-service.quay/test-org/trusted-artifacts@sha256:f035b439f961c2bfbe1e19526039b26d5070d98eb7366dc8d9135d8e8e90f379=/var/workdir/release"
                            ],
                            "computeResources": {
                                "limits": {
                                    "memory": "64Mi"
                                },
                                "requests": {
                                    "cpu": "30m",
                                    "memory": "64Mi"
                                }
                            },
                            "env": [
                                {
                                    "name": "HOME",
                                    "value": "/tekton/home"
                                },
                                {
                                    "name": "ORAS_OPTIONS"
                                },
                                {
                                    "name": "CA_FILE",
                                    "value": "/mnt/trusted-ca/ca-bundle.crt"
                                }
                            ],
                            "image": "quay.io/konflux-ci/build-trusted-artifacts@sha256:9bd32f6bafb517b309e11a2d89365052b4ab3f1c9c23c4ffd45aff6f03960476",
                            "name": "use-trusted-artifact"
                        },
                        {
                            "command": [
                                "/home/scripts/python/tasks/managed/make_repo_public.py"
                            ],
                            "computeResources": {
                                "limits": {
                                    "memory": "256Mi"
                                },
                                "requests": {
                                    "cpu": "150m",
                                    "memory": "256Mi"
                                }
                            },
                            "env": [
                                {
                                    "name": "DATA_FILE",
                                    "value": "/var/workdir/release/add9a4ba-a70a-422c-b994-67c1bcbfd6b8/data.json"
                                },
                                {
                                    "name": "SNAPSHOT_FILE",
                                    "value": "/var/workdir/release/add9a4ba-a70a-422c-b994-67c1bcbfd6b8/snapshot_spec.json"
                                },
                                {
                                    "name": "REGISTRY_SECRET_PATH",
                                    "value": "/etc/secrets"
                                },
                                {
                                    "name": "CA_CERT_PATH",
                                    "value": "/mnt/trusted-ca/ca-bundle.crt"
                                },
                                {
                                    "name": "REGISTRY_SECRET_NAME",
                                    "value": "quay-api-token"
                                }
                            ],
                            "image": "quay.io/konflux-ci/release-service-utils@sha256:67bb57a671d7e1b8d51ee07cefcca4ac46db02b8c3a9ee8fad60fb9365aab324",
                            "name": "make-repo-public",
                            "volumeMounts": [
                                {
                                    "mountPath": "/etc/secrets",
                                    "name": "registry-secret-vol"
                                }
                            ]
                        },
                        {
                            "args": [
                                "create",
                                "--store",
                                "quay-service.quay/test-org/trusted-artifacts",
                                "/tekton/results/sourceDataArtifact=/var/workdir/release"
                            ],
                            "computeResources": {
                                "limits": {
                                    "memory": "128Mi"
                                },
                                "requests": {
                                    "cpu": "250m",
                                    "memory": "128Mi"
                                }
                            },
                            "env": [
                                {
                                    "name": "HOME",
                                    "value": "/tekton/home"
                                },
                                {
                                    "name": "ORAS_OPTIONS"
                                },
                                {
                                    "name": "CA_FILE",
                                    "value": "/mnt/trusted-ca/ca-bundle.crt"
                                }
                            ],
                            "image": "quay.io/konflux-ci/build-trusted-artifacts@sha256:9bd32f6bafb517b309e11a2d89365052b4ab3f1c9c23c4ffd45aff6f03960476",
                            "name": "create-trusted-artifact"
                        }
                    ],
                    "volumes": [
                        {
                            "emptyDir": {},
                            "name": "workdir"
                        },
                        {
                            "name": "registry-secret-vol",
                            "secret": {
                                "defaultMode": 292,
                                "secretName": "quay-api-token"
                            }
                        },
                        {
                            "configMap": {
                                "items": [
                                    {
                                        "key": "ca-bundle.crt",
                                        "path": "ca-bundle.crt"
                                    }
                                ],
                                "name": "trusted-ca",
                                "optional": true
                            },
                            "name": "trusted-ca"
                        }
                    ]
                }
            }
        },
        {
            "apiVersion": "tekton.dev/v1",
            "kind": "TaskRun",
            "metadata": {
                "annotations": {
                    "chains.tekton.dev/signed": "true",
                    "operator-sdk/primary-resource": "ex-registry-sh-869ae581/snapshot-sample-869ae581-bsrlj",
                    "operator-sdk/primary-resource-type": "Release.appstudio.redhat.com",
                    "pipeline.tekton.dev/release": "70f7308",
                    "results.tekton.dev/childReadyForDeletion": "true",
                    "results.tekton.dev/record": "ex-registry-sh-managed-869ae581/results/add9a4ba-a70a-422c-b994-67c1bcbfd6b8/records/67fbe706-915a-47c7-b818-c4be09e233e3",
                    "results.tekton.dev/result": "ex-registry-sh-managed-869ae581/results/add9a4ba-a70a-422c-b994-67c1bcbfd6b8",
                    "results.tekton.dev/stored": "true",
                    "tekton.dev/pipelines.minVersion": "0.12.1",
                    "tekton.dev/tags": "release"
                },
                "creationTimestamp": "2026-08-26T17:52:55Z",
                "finalizers": [
                    "results.tekton.dev/taskrun",
                    "chains.tekton.dev/taskrun"
                ],
                "generation": 1,
                "labels": {
                    "app.kubernetes.io/managed-by": "tekton-pipelines",
                    "appstudio.openshift.io/application": "appstudio",
                    "appstudio.openshift.io/service": "release",
                    "appstudio.openshift.io/snapshot": "snapshot-sample-869ae581",
                    "pipelines.appstudio.openshift.io/type": "managed",
                    "release.appstudio.openshift.io/attempt": "0",
                    "release.appstudio.openshift.io/name": "snapshot-sample-869ae581-bsrlj",
                    "release.appstudio.openshift.io/namespace": "ex-registry-sh-869ae581",
                    "tekton.dev/memberOf": "tasks",
                    "tekton.dev/pipeline": "push-to-external-registry",
                    "tekton.dev/pipelineRun": "managed-hgppl",
                    "tekton.dev/pipelineRunUID": "add9a4ba-a70a-422c-b994-67c1bcbfd6b8",
                    "tekton.dev/pipelineTask": "push-snapshot",
                    "tekton.dev/task": "push-snapshot"
                },
                "name": "managed-hgppl-push-snapshot",
                "namespace": "ex-registry-sh-managed-869ae581",
                "ownerReferences": [
                    {
                        "apiVersion": "tekton.dev/v1",
                        "blockOwnerDeletion": true,
                        "controller": true,
                        "kind": "PipelineRun",
                        "name": "managed-hgppl",
                        "uid": "add9a4ba-a70a-422c-b994-67c1bcbfd6b8"
                    }
                ],
                "resourceVersion": "11739",
                "uid": "67fbe706-915a-47c7-b818-c4be09e233e3"
            },
            "spec": {
                "params": [
                    {
                        "name": "snapshotPath",
                        "value": "add9a4ba-a70a-422c-b994-67c1bcbfd6b8/snapshot_spec.json"
                    },
                    {
                        "name": "dataPath",
                        "value": "add9a4ba-a70a-422c-b994-67c1bcbfd6b8/data.json"
                    },
                    {
                        "name": "resultsDirPath",
                        "value": "add9a4ba-a70a-422c-b994-67c1bcbfd6b8/results"
                    },
                    {
                        "name": "ociStorage",
                        "value": "quay-service.quay/test-org/trusted-artifacts"
                    },
                    {
                        "name": "sourceDataArtifact",
                        "value": "oci:quay-service.quay/test-org/trusted-artifacts@sha256:b122aa1c690395e2110a897eda2b3c89ebc36bf056b00601b0ef35f1907dfbe0"
                    },
                    {
                        "name": "dataDir",
                        "value": "/var/workdir/release"
                    },
                    {
                        "name": "trustedArtifactsDebug",
                        "value": ""
                    },
                    {
                        "name": "taskGitUrl",
                        "value": "https://github.com/swickersh/release-service-catalog"
                    },
                    {
                        "name": "taskGitRevision",
                        "value": "4d8f5d74eb4405ac637042fde05a3330b26bb548"
                    }
                ],
                "retries": 5,
                "serviceAccountName": "release-service-account",
                "taskRef": {
                    "params": [
                        {
                            "name": "url",
                            "value": "https://github.com/swickersh/release-service-catalog"
                        },
                        {
                            "name": "revision",
                            "value": "4d8f5d74eb4405ac637042fde05a3330b26bb548"
                        },
                        {
                            "name": "pathInRepo",
                            "value": "tasks/managed/push-snapshot/push-snapshot.yaml"
                        }
                    ],
                    "resolver": "git"
                },
                "timeout": "3h50m0s"
            },
            "status": {
                "artifacts": {},
                "completionTime": "2026-08-26T17:53:27Z",
                "conditions": [
                    {
                        "lastTransitionTime": "2026-08-26T17:53:27Z",
                        "message": "All Steps have completed executing",
                        "reason": "Succeeded",
                        "status": "True",
                        "type": "Succeeded"
                    }
                ],
                "podName": "managed-hgppl-push-snapshot-pod",
                "provenance": {
                    "featureFlags": {
                        "awaitSidecarReadiness": true,
                        "coschedule": "workspaces",
                        "enableAPIFields": "beta",
                        "enableProvenanceInStatus": true,
                        "enforceNonfalsifiability": "none",
                        "maxResultSize": 4096,
                        "resultExtractionMethod": "termination-message",
                        "runningInEnvWithInjectedSidecars": true,
                        "sendCloudEventsForRuns": true,
                        "verificationNoMatchPolicy": "ignore"
                    },
                    "refSource": {
                        "digest": {
                            "sha1": "4d8f5d74eb4405ac637042fde05a3330b26bb548"
                        },
                        "entryPoint": "tasks/managed/push-snapshot/push-snapshot.yaml",
                        "uri": "git+https://github.com/swickersh/release-service-catalog"
                    }
                },
                "results": [
                    {
                        "name": "sourceDataArtifact",
                        "type": "string",
                        "value": "oci:quay-service.quay/test-org/trusted-artifacts@sha256:f035b439f961c2bfbe1e19526039b26d5070d98eb7366dc8d9135d8e8e90f379"
                    }
                ],
                "startTime": "2026-08-26T17:52:55Z",
                "steps": [
                    {
                        "container": "step-use-trusted-artifact",
                        "imageID": "quay.io/konflux-ci/build-trusted-artifacts@sha256:9bd32f6bafb517b309e11a2d89365052b4ab3f1c9c23c4ffd45aff6f03960476",
                        "name": "use-trusted-artifact",
                        "provenance": {},
                        "terminated": {
                            "containerID": "containerd://cba652cb03d64a9bb0f8c6235d456d24cd750600b1ec22a3030c9f70b962d490",
                            "exitCode": 0,
                            "finishedAt": "2026-08-26T17:53:23Z",
                            "reason": "Completed",
                            "startedAt": "2026-08-26T17:53:23Z"
                        },
                        "terminationReason": "Completed"
                    },
                    {
                        "container": "step-push-snapshot",
                        "imageID": "quay.io/konflux-ci/release-service-utils@sha256:3cb03b14ac9d90ff27070036ce2b50712e65aa285daeb28852254a745bb25dfc",
                        "name": "push-snapshot",
                        "provenance": {},
                        "terminated": {
                            "containerID": "containerd://405db07f233f3038695e5e9587edfa797571b6de4158d3441937620612a1e60e",
                            "exitCode": 0,
                            "finishedAt": "2026-08-26T17:53:26Z",
                            "reason": "Completed",
                            "startedAt": "2026-08-26T17:53:24Z"
                        },
                        "terminationReason": "Completed"
                    },
                    {
                        "container": "step-create-trusted-artifact",
                        "imageID": "quay.io/konflux-ci/build-trusted-artifacts@sha256:9bd32f6bafb517b309e11a2d89365052b4ab3f1c9c23c4ffd45aff6f03960476",
                        "name": "create-trusted-artifact",
                        "provenance": {},
                        "terminated": {
                            "containerID": "containerd://69f59008634cc4ed668f38af57b0a51fbb5773b9fe6a581aa8a3457596e56217",
                            "exitCode": 0,
                            "finishedAt": "2026-08-26T17:53:26Z",
                            "message": "[{\"key\":\"sourceDataArtifact\",\"value\":\"oci:quay-service.quay/test-org/trusted-artifacts@sha256:f035b439f961c2bfbe1e19526039b26d5070d98eb7366dc8d9135d8e8e90f379\",\"type\":1}]",
                            "reason": "Completed",
                            "startedAt": "2026-08-26T17:53:26Z"
                        },
                        "terminationReason": "Completed"
                    }
                ],
                "taskSpec": {
                    "description": "Tekton task to push snapshot images to an image registry using `cosign copy`.",
                    "params": [
                        {
                            "description": "Path to the JSON string of the mapped Snapshot spec in the data workspace",
                            "name": "snapshotPath",
                            "type": "string"
                        },
                        {
                            "description": "Path to the JSON string of the merged data to use in the data workspace",
                            "name": "dataPath",
                            "type": "string"
                        },
                        {
                            "description": "Path to the results directory in the data workspace",
                            "name": "resultsDirPath",
                            "type": "string"
                        },
                        {
                            "default": "20",
                            "description": "The maximum number of images to be proccessed concurrently",
                            "name": "concurrentLimit",
                            "type": "string"
                        },
                        {
                            "default": "3",
                            "description": "Retry copy N times",
                            "name": "retries",
                            "type": "string"
                        },
                        {
                            "default": "trusted-ca",
                            "description": "The name of the ConfigMap to read CA bundle data from",
                            "name": "caTrustConfigMapName",
                            "type": "string"
                        },
                        {
                            "default": "ca-bundle.crt",
                            "description": "The name of the key in the ConfigMap that contains the CA bundle data",
                            "name": "caTrustConfigMapKey",
                            "type": "string"
                        },
                        {
                            "default": "empty",
                            "description": "The OCI repository where the Trusted Artifacts are stored",
                            "name": "ociStorage",
                            "type": "string"
                        },
                        {
                            "default": "1d",
                            "description": "Expiration date for the trusted artifacts created in the OCI repository. An empty string means the artifacts do not expire",
                            "name": "ociArtifactExpiresAfter",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Flag to enable debug logging in trusted artifacts. Set to a non-empty string to enable",
                            "name": "trustedArtifactsDebug",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "oras options to pass to Trusted Artifacts calls",
                            "name": "orasOptions",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Location of trusted artifacts to be used to populate data directory",
                            "name": "sourceDataArtifact",
                            "type": "string"
                        },
                        {
                            "default": "/var/workdir/release",
                            "description": "The location where data will be stored",
                            "name": "dataDir",
                            "type": "string"
                        },
                        {
                            "description": "The url to the git repo where the release-service-catalog tasks and stepactions to be used are stored",
                            "name": "taskGitUrl",
                            "type": "string"
                        },
                        {
                            "description": "The revision in the taskGitUrl repo to be used",
                            "name": "taskGitRevision",
                            "type": "string"
                        },
                        {
                            "default": "false",
                            "description": "Enable copying of attached artifacts",
                            "name": "copyBundleMigrations",
                            "type": "string"
                        },
                        {
                            "default": "/mnt/trusted-ca/ca-bundle.crt",
                            "description": "Path to CA certificate bundle for TLS verification with self-signed certificates",
                            "name": "caCertPath",
                            "type": "string"
                        }
                    ],
                    "results": [
                        {
                            "description": "Produced trusted data artifact",
                            "name": "sourceDataArtifact",
                            "type": "string"
                        }
                    ],
                    "stepTemplate": {
                        "computeResources": {},
                        "env": [
                            {
                                "name": "IMAGE_EXPIRES_AFTER",
                                "value": "1d"
                            },
                            {
                                "name": "ORAS_OPTIONS"
                            },
                            {
                                "name": "DEBUG"
                            }
                        ],
                        "securityContext": {
                            "runAsUser": 1001
                        },
                        "volumeMounts": [
                            {
                                "mountPath": "/var/workdir",
                                "name": "workdir"
                            },
                            {
                                "mountPath": "/mnt/trusted-ca",
                                "name": "trusted-ca",
                                "readOnly": true
                            }
                        ]
                    },
                    "steps": [
                        {
                            "args": [
                                "use",
                                "oci:quay-service.quay/test-org/trusted-artifacts@sha256:b122aa1c690395e2110a897eda2b3c89ebc36bf056b00601b0ef35f1907dfbe0=/var/workdir/release"
                            ],
                            "computeResources": {
                                "limits": {
                                    "memory": "64Mi"
                                },
                                "requests": {
                                    "cpu": "30m",
                                    "memory": "64Mi"
                                }
                            },
                            "env": [
                                {
                                    "name": "HOME",
                                    "value": "/tekton/home"
                                },
                                {
                                    "name": "ORAS_OPTIONS"
                                },
                                {
                                    "name": "CA_FILE",
                                    "value": "/mnt/trusted-ca/ca-bundle.crt"
                                }
                            ],
                            "image": "quay.io/konflux-ci/build-trusted-artifacts@sha256:9bd32f6bafb517b309e11a2d89365052b4ab3f1c9c23c4ffd45aff6f03960476",
                            "name": "use-trusted-artifact"
                        },
                        {
                            "computeResources": {
                                "limits": {
                                    "memory": "1Gi"
                                },
                                "requests": {
                                    "cpu": "2",
                                    "memory": "1Gi"
                                }
                            },
                            "image": "quay.io/konflux-ci/release-service-utils@sha256:3cb03b14ac9d90ff27070036ce2b50712e65aa285daeb28852254a745bb25dfc",
                            "name": "push-snapshot",
                            "script": "#!/usr/bin/env bash\nset -eux\n\nif [ -f \"/mnt/trusted-ca/ca-bundle.crt\" ]; then\n    export SSL_CERT_FILE=\"/mnt/trusted-ca/ca-bundle.crt\"\nfi\n\npush_image () { # Expected arguments are [origin_digest, name, containerImage, repository, tag, platform]\n  # note: Inspection might fail on empty repos, hence `|| true`\n\n  # oras has very limited support for selecting the right auth entry,\n  # so create a custom auth file with just one entry.\n  DEST_AUTH_FILE=$(mktemp)\n  registry=$(echo \"$4\" | cut -d '/' -f 1)\n  if [ \"$registry\" = \"docker.io\" ]; then\n    # For docker.io, the auth key will always be https://index.docker.io/v1/\n    select-oci-auth \"$4\" \u003e \"$DEST_AUTH_FILE\"\n  else\n    # For other registries, the auth key will be modified to the full repository path, so that\n    # we can create a combined auth file with source and destination entries for `cosign copy` later\n    select-oci-auth \"$4\" | jq -c \\\n      '.auths.\"'\"$4\"'\" = .auths.\"'\"$registry\"'\" | del(.auths.\"'\"$registry\"'\")' \u003e \"$DEST_AUTH_FILE\"\n  fi\n\n  oras_args=()\n  if [ -n \"$6\" ]; then\n    oras_args=(--platform \"$6\")\n  fi\n\n  destination_digest=$(oras resolve --registry-config \"$DEST_AUTH_FILE\" \"$4:$5\" || true)\n\n  if [[ \"$destination_digest\" != \"$1\" || -z \"$destination_digest\" ]]; then\n    printf '* Pushing component: %s to %s:%s\\n' \"$2\" \"$4\" \"$5\"\n    # Create a combined auth file to enable partial oci matches to work\n    DOCKER_CONFIG=\"$(mktemp -d)\"\n    export DOCKER_CONFIG\n    # shellcheck disable=SC2128\n    jq -s 'reduce .[] as $item ({}; . * $item)' \\\n      \"$SOURCE_AUTH_FILE\" \"$DEST_AUTH_FILE\" \u003e \"$DOCKER_CONFIG\"/config.json\n\n    # Check if we should copy attached artifacts\n    if [[ \"$COPY_BUNDLE_MIGRATIONS\" == \"true\" ]]; then\n      # Check for any attached artifacts using oras discover, with retries on failure\n      printf '* Checking for attached artifacts on %s\\n' \"$3\"\n      artifact_count=\"0\"\n      discover_attempt=0\n      discover_succeeded=false\n      until [ \"$discover_attempt\" -gt \"3\" ]; do # same retry style as copy loop\n        if oras discover \\\n          --registry-config \"$SOURCE_AUTH_FILE\" \\\n          \"$3\" \\\n          --format json \\\n          \u003e/tmp/artifacts.json\n        then\n          artifact_count=$(jq -r '.referrers | length' /tmp/artifacts.json || echo \"0\")\n          echo \"Found $artifact_count artifacts\"\n          discover_succeeded=true\n          break\n        else\n          rc=$?\n          echo \"oras discover failed (attempt $((discover_attempt+1))) with exit code $rc\"\n          discover_attempt=$((discover_attempt+1))\n        fi\n      done\n      if [ \"$discover_succeeded\" != true ]; then\n        echo \"Max retries exceeded. Proceeding without attached artifacts (falling back to cosign copy).\"\n      fi\n    fi\n\n    attempt=0\n    until [ \"$attempt\" -gt \"3\" ] ; do # 0 retries by default which will execute this once\n      if [[ \"$COPY_BUNDLE_MIGRATIONS\" == \"true\" \u0026\u0026 \"${artifact_count}\" -gt 0 ]]; then\n        # Copy the image and all attached artifacts\n        oras cp -r \\\n          --from-registry-config \"$SOURCE_AUTH_FILE\" \\\n          --to-registry-config \"$DEST_AUTH_FILE\" \\\n          \"${oras_args[@]}\" \\\n          \"$3\" \\\n          \"$4:$5\" \\\n          \u0026\u0026 break\n      else\n        # Fallback to classic image copy\n        cosign copy -f \"$3\" \"$4:$5\" \u0026\u0026 break\n      fi\n      attempt=$((attempt+1))\n    done\n    if [ \"$attempt\" -gt \"3\" ] ; then\n      echo \"Max retries exceeded.\"\n      exit 1\n    fi\n    # Only the cosign call above needs this custom Docker config. Unset it, so that skopeo call\n    # in get-image-architecture uses the default config in ~/.docker/config.json (this one would break it)\n    unset DOCKER_CONFIG\n  else\n    printf '* Component push skipped (source digest exists at destination): %s (%s)\\n' \\\n      \"$2\" \"$3\"\n  fi\n  jq -n --arg name \"$2\" --arg url \"$4:$5\" '{name: $name, url: $url}' \u003e \"$TMP_RESULTS_DIR/$2-$5.json\"\n}\n\n# Push migration artifact using oras cp\n# Expected arguments are [source_repo, migration_digest, name, repository, migration_tag, source_auth_file]\npush_migration_artifact () {\n  local source_repo=\"$1\"\n  local migration_digest=\"$2\"\n  local name=\"$3\"\n  local repository=\"$4\"\n  local migration_tag=\"$5\"\n  local source_auth_file=\"$6\"\n\n  local migration_source=\"${source_repo}@${migration_digest}\"\n\n  # Create destination auth file\n  local dest_auth_file\n  dest_auth_file=$(mktemp)\n  local dest_registry\n  dest_registry=$(echo \"$repository\" | cut -d '/' -f 1)\n  if [ \"$dest_registry\" = \"docker.io\" ]; then\n    select-oci-auth \"$repository\" \u003e \"$dest_auth_file\"\n  else\n    select-oci-auth \"$repository\" | jq -c \\\n      '.auths.\"'\"$repository\"'\" = .auths.\"'\"$dest_registry\"'\" | del(.auths.\"'\"$dest_registry\"'\")' \\\n      \u003e \"$dest_auth_file\"\n  fi\n\n  # Check if migration artifact already exists at destination\n  local destination_digest\n  destination_digest=$(oras resolve --registry-config \"$dest_auth_file\" \\\n    \"${repository}:${migration_tag}\" || true)\n\n  if [[ \"$destination_digest\" != \"$migration_digest\" || -z \"$destination_digest\" ]]; then\n    printf '* Pushing migration artifact for component: %s to %s:%s\\n' \"$name\" \"$repository\" \"$migration_tag\"\n\n    local attempt=0\n    until [ \"$attempt\" -gt \"3\" ] ; do\n      if oras cp \\\n        --from-registry-config \"$source_auth_file\" \\\n        --to-registry-config \"$dest_auth_file\" \\\n        \"$migration_source\" \\\n        \"${repository}:${migration_tag}\"\n      then\n        break\n      fi\n      attempt=$((attempt+1))\n      echo \"Migration artifact copy failed (attempt $attempt)\"\n    done\n    if [ \"$attempt\" -gt \"3\" ] ; then\n      echo \"Max retries exceeded for migration artifact copy.\"\n      exit 1\n    fi\n  else\n    printf '* Migration artifact push skipped (already exists at destination): %s (%s)\\n' \\\n      \"$name\" \"$migration_source\"\n  fi\n}\n\nSNAPSHOT_SPEC_FILE=\"/var/workdir/release/add9a4ba-a70a-422c-b994-67c1bcbfd6b8/snapshot_spec.json\"\nif [ ! -f \"${SNAPSHOT_SPEC_FILE}\" ] ; then\n    echo \"No valid snapshot file was provided.\"\n    exit 1\nfi\n\nDATA_FILE=\"/var/workdir/release/add9a4ba-a70a-422c-b994-67c1bcbfd6b8/data.json\"\nif [ ! -f \"${DATA_FILE}\" ] ; then\n    echo \"No data JSON was provided.\"\n    exit 1\nfi\n\nif [ \"$(jq '.components | map(select(.repositories |\n  map(select((has(\"tags\")|not) or (.tags | IN([])))) | length \u003e 0)) | length' \\\n  \"${SNAPSHOT_SPEC_FILE}\")\" -ne 0 ] ; then\n    echo \"Found components in the snapshot file that do not contain tags. Failing\"\n    cat \"${SNAPSHOT_SPEC_FILE}\"\n    exit 1\nfi\n\nRESULTS_FILE=\"/var/workdir/release/add9a4ba-a70a-422c-b994-67c1bcbfd6b8/results/push-snapshot-results.json\"\nRESULTS_JSON_FILE=$(mktemp)\necho '{\"images\":[]}' \u003e \"$RESULTS_JSON_FILE\"\n\n# Initialize memory throttling\n# This file is located at utils/memory-throttle.sh in the release-service-utils image\n# shellcheck source=/dev/null\nsource memory-throttle.sh\n# This function is stored in the utils/memory-throttle.sh file\nlog_memory_throttle_status 80\n\nRUNNING_JOBS=\"\\j\" # A Bash param for number of jobs running\nCONCURRENT_LIMIT=20\nBURST_SIZE=5\nSTABILIZATION_DELAY=2\nREQUEST_COUNT=0\nSUCCESS=true\njobs_spawned=0\njobs_collected=0\n\n# Wait for a slot to open up in the concurrent limit and for memory to be available\nwait_for_slot () {\n  # This function is stored in the utils/memory-throttle.sh file\n  # First wait for memory to be available\n  wait_for_memory 80\n  # Then wait for concurrent limit\n  while (( ${RUNNING_JOBS@P} \u003e= \"$CONCURRENT_LIMIT\" )); do\n    wait -n || SUCCESS=false\n    jobs_collected=$((jobs_collected + 1))\n  done\n}\n\n# Create a temporary directory to store the results of each push\nTMP_RESULTS_DIR=$(mktemp -d)\n\ndefaultPushSourceContainer=$(jq -r \\\n  '.mapping.defaults.pushSourceContainer | if . == null then true else . end' \"$DATA_FILE\")\nCOPY_BUNDLE_MIGRATIONS=\"false\"\n\ncomponentGroup=$(jq -r '.componentGroup' \"${SNAPSHOT_SPEC_FILE}\")\nNUM_COMPONENTS=$(jq '.components | length' \"${SNAPSHOT_SPEC_FILE}\")\nprintf 'Beginning \"%s\" for \"%s\"\\n\\n' \"managed-hgppl-push-snapshot\" \"$componentGroup\"\nfor ((i = 0; i \u003c NUM_COMPONENTS; i++))\ndo\n  component=$(jq -c --argjson i \"$i\" '.components[$i]' \"${SNAPSHOT_SPEC_FILE}\")\n  containerImage=$(jq -r '.containerImage' \u003c\u003c\u003c \"$component\")\n\n  # oras has very limited support for selecting the right auth entry,\n  # so create a custom auth file with just one entry.\n  registry=$(echo \"${containerImage}\" | cut -d '/' -f 1)\n  # Apply-mapping ensures that the containerImage contains a sha256 digest\n  source_repo=${containerImage%%@sha256:*}\n  SOURCE_AUTH_FILE=$(mktemp)\n  select-oci-auth \"${containerImage}\" | jq -c \\\n    '.auths.\"'\"$source_repo\"'\" = .auths.\"'\"$registry\"'\" | del(.auths.\"'\"$registry\"'\")' \u003e \"$SOURCE_AUTH_FILE\"\n\n  arch_json=$(get-image-architectures \"${containerImage}\")\n  arches=$(jq -s 'map(.platform.architecture)' \u003c\u003c\u003c \"$arch_json\")\n  oses=$(jq -s 'map(.platform.os)' \u003c\u003c\u003c \"$arch_json\")\n\n  # Just read the first from the list of architectures\n  os=$(jq -r '.[0]' \u003c\u003c\u003c \"$oses\")\n  arch=$(jq -r '.[0]' \u003c\u003c\u003c \"$arches\")\n  name=$(jq -r '.name' \u003c\u003c\u003c \"$component\")\n  media_type=$(skopeo inspect --retry-times 3 --raw \"docker://${containerImage}\" | jq -r .mediaType)\n  oras_args=()\n  platform=\n  if [[ \"$media_type\" == \"application/vnd.docker.distribution.manifest.list.v2+json\" ]]\\\n    || [[ \"$media_type\" == \"application/vnd.oci.image.index.v1+json\" ]]; then\n    platform=$os/$arch\n    oras_args=(--platform \"$platform\")\n  fi\n\n  # we do not use oras_args here since we want to get the manifest index image digest\n  origin_digest=$(oras resolve --registry-config \"$SOURCE_AUTH_FILE\" \"${containerImage}\")\n\n  jq --arg i \"$i\" --argjson arches \"$arches\" --argjson oses \"$oses\" --arg name \"$name\" \\\n    --arg sha \"$origin_digest\" \\\n    '.images[$i|tonumber] += {\"arches\": $arches, \"oses\": $oses, \"name\": $name, \"shasum\": $sha, \"urls\": []}' \\\n      \"$RESULTS_JSON_FILE\" \u003e \"$RESULTS_JSON_FILE.tmp\" \u0026\u0026 mv \"$RESULTS_JSON_FILE.tmp\" \"$RESULTS_JSON_FILE\"\n\n  # Push source container if the component has pushSourceContainer: true or if the\n  # pushSourceContainer key is missing from the component and the defaults has\n  # pushSourceContainer: true or omitted (defaultPushSourceContainer defaults to true)\n  pushSourceContainer=$(jq -r '.pushSourceContainer' \u003c\u003c\u003c \"$component\")\n  hasPushSourceContainer=$(jq 'has(\"pushSourceContainer\")' \u003c\u003c\u003c \"$component\")\n\n  if [[ \"${pushSourceContainer}\" == \"true\" ]] || [[ \"${hasPushSourceContainer}\" == \"false\" \u0026\u0026 \\\n          ${defaultPushSourceContainer} == \"true\" ]] ; then\n    source_tag=${origin_digest/:/-}.src\n    # Calculate the source container image based on the provided container image\n    sourceContainer=\"${source_repo}:${source_tag}\"\n    # Check if the source container exists\n    source_container_digest=$(oras resolve --registry-config \"$SOURCE_AUTH_FILE\" \\\n      \"${sourceContainer}\")\n\n    if [ -z \"$source_container_digest\" ] ; then\n      echo \"Error: Source container ${sourceContainer} not found!\"\n      exit 1\n    fi\n  fi\n\n  # Extract migration annotations if COPY_BUNDLE_MIGRATIONS is enabled\n  migration_digest=\"\"\n  migration_tag=\"\"\n  if [[ \"$COPY_BUNDLE_MIGRATIONS\" == \"true\" ]]; then\n    # Annotations are stored as [{name: key, value: value}, ...] in component.metadata.annotations\n    migration_digest=$(jq -r '.metadata.annotations // [] |\n      map(select(.name == \"dev.konflux-ci.task.migration.digest\")) |\n      .[0].value // \"\"' \u003c\u003c\u003c \"$component\")\n    migration_tag=$(jq -r '.metadata.annotations // [] |\n      map(select(.name == \"dev.konflux-ci.task.migration.tag\")) |\n      .[0].value // \"\"' \u003c\u003c\u003c \"$component\")\n    if [ -n \"$migration_digest\" ] \u0026\u0026 [ -n \"$migration_tag\" ]; then\n      printf '* Found migration annotations for component %s: digest=%s, tag=%s\\n' \\\n        \"$name\" \"$migration_digest\" \"$migration_tag\"\n    fi\n  fi\n\n  NUM_REPOS=$(jq -c '.repositories | length' \u003c\u003c\u003c \"$component\")\n  for ((j = 0; j \u003c NUM_REPOS; j++)); do\n    repository=$(jq -c --argjson j \"$j\" '.repositories[$j]' \u003c\u003c\u003c \"$component\")\n    imageTags=$(jq '.tags' \u003c\u003c\u003c \"$repository\")\n    repository_url=$(jq -r '.url' \u003c\u003c\u003c \"$repository\")\n\n    if [ -n \"${source_container_digest-}\" ] ; then\n      # Push the source image with the source tag here. The source image will be\n      # pushed with the provided tags below in the loop\n      wait_for_slot\n      push_image \"${source_container_digest}\" \"${name}\" \"${sourceContainer}\" \\\n        \"${repository_url}\" \"${source_tag}\" \"\" \u003e \"$TMP_RESULTS_DIR/${name}-${source_tag}.out\" 2\u003e\u00261 \u0026\n      ((++REQUEST_COUNT))\n      echo \"Request Count: $REQUEST_COUNT\"\n      jobs_spawned=$((jobs_spawned + 1))\n      # Allow memory usage to stabilize every BURST_SIZE spawns.\n      if (( jobs_spawned % BURST_SIZE == 0 )); then\n        sleep $STABILIZATION_DELAY\n      fi\n    fi\n\n    for tag in $(jq -r '.[]' \u003c\u003c\u003c \"$imageTags\") ; do\n      wait_for_slot\n      # Push the container image\n      push_image \"${origin_digest}\" \"${name}\" \"${containerImage}\" \"${repository_url}\" \"${tag}\" \\\n      \"$platform\" \u003e \"$TMP_RESULTS_DIR/${name}-${tag}.out\" 2\u003e\u00261 \u0026\n      ((++REQUEST_COUNT))\n      echo \"Request Count: $REQUEST_COUNT\"\n      jobs_spawned=$((jobs_spawned + 1))\n      if (( jobs_spawned % BURST_SIZE == 0 )); then\n        sleep $STABILIZATION_DELAY\n      fi\n\n      # This variable will only exist if the above logic determined the source container should\n      # be pushed for this component\n      if [ -n \"${source_container_digest-}\" ] ; then\n        wait_for_slot\n        push_image \"${source_container_digest}\" \"${name}\" \"${sourceContainer}\" \\\n          \"${repository_url}\" \"${tag}-source\" \"\" \u003e \"$TMP_RESULTS_DIR/${name}-${tag}-source.out\" 2\u003e\u00261 \u0026\n        ((++REQUEST_COUNT))\n        echo \"Request Count: $REQUEST_COUNT\"\n        jobs_spawned=$((jobs_spawned + 1))\n        if (( jobs_spawned % BURST_SIZE == 0 )); then\n          sleep $STABILIZATION_DELAY\n        fi\n      fi\n    done\n\n    # Push migration artifact if annotations are present\n    if [[ \"$COPY_BUNDLE_MIGRATIONS\" == \"true\" ]] \u0026\u0026 [ -n \"$migration_digest\" ] \u0026\u0026 [ -n \"$migration_tag\" ]; then\n      wait_for_slot\n      push_migration_artifact \"${source_repo}\" \"${migration_digest}\" \"${name}\" \\\n        \"${repository_url}\" \"${migration_tag}\" \"$SOURCE_AUTH_FILE\" \\\n        \u003e \"$TMP_RESULTS_DIR/${name}-migration-${migration_tag}.out\" 2\u003e\u00261 \u0026\n      ((++REQUEST_COUNT))\n      echo \"Request Count: $REQUEST_COUNT (migration artifact)\"\n      jobs_spawned=$((jobs_spawned + 1))\n      if (( jobs_spawned % BURST_SIZE == 0 )); then\n        sleep $STABILIZATION_DELAY\n      fi\n    fi\n  done\ndone\n\necho \"Waiting for all jobs to complete....\"\n# Use counter to collect all exit codes in case processes finished during a burst sleep\nwhile (( jobs_collected \u003c jobs_spawned )); do\n  wait -n || SUCCESS=false\n  jobs_collected=$((jobs_collected + 1))\ndone\n\necho \"Printing outputs for each push image\"\nfor file in \"$TMP_RESULTS_DIR\"/*.out; do\n  echo \"=== $(basename \"${file}\" .out) ===\"\n  cat \"$file\"\n  echo\ndone\n\nif [ \"$SUCCESS\" != true ]; then\n    echo \"One or more jobs failed. Please check the logs above for details.\"\n    exit 1\nfi\n\n# Create a temporary file for the pushes data to avoid command line argument length limits\nPUSHES_FILE=$(mktemp)\njq -s . \"$TMP_RESULTS_DIR\"/*.json \u003e \"$PUSHES_FILE\"\n\n# Use file input instead of command line arguments to avoid argument length limits\njq --slurpfile PUSHES \"$PUSHES_FILE\" '\n  reduce $PUSHES[0][] as $p (.; (.images[] | select(.name == $p.name).urls) += [$p.url])\n' \"$RESULTS_JSON_FILE\" | tee \"$RESULTS_FILE\"\n\n# Clean up temporary files\nrm -f \"$RESULTS_JSON_FILE\" \"$RESULTS_JSON_FILE.tmp\" \"$PUSHES_FILE\"\n\nprintf 'Completed \"%s\" for \"%s\"\\n\\n' \"managed-hgppl-push-snapshot\" \"$componentGroup\"\n"
                        },
                        {
                            "args": [
                                "create",
                                "--store",
                                "quay-service.quay/test-org/trusted-artifacts",
                                "/tekton/results/sourceDataArtifact=/var/workdir/release"
                            ],
                            "computeResources": {
                                "limits": {
                                    "memory": "128Mi"
                                },
                                "requests": {
                                    "cpu": "250m",
                                    "memory": "128Mi"
                                }
                            },
                            "env": [
                                {
                                    "name": "HOME",
                                    "value": "/tekton/home"
                                },
                                {
                                    "name": "ORAS_OPTIONS"
                                },
                                {
                                    "name": "CA_FILE",
                                    "value": "/mnt/trusted-ca/ca-bundle.crt"
                                }
                            ],
                            "image": "quay.io/konflux-ci/build-trusted-artifacts@sha256:9bd32f6bafb517b309e11a2d89365052b4ab3f1c9c23c4ffd45aff6f03960476",
                            "name": "create-trusted-artifact"
                        }
                    ],
                    "volumes": [
                        {
                            "configMap": {
                                "items": [
                                    {
                                        "key": "ca-bundle.crt",
                                        "path": "ca-bundle.crt"
                                    }
                                ],
                                "name": "trusted-ca",
                                "optional": true
                            },
                            "name": "trusted-ca"
                        },
                        {
                            "emptyDir": {},
                            "name": "workdir"
                        }
                    ]
                }
            }
        },
        {
            "apiVersion": "tekton.dev/v1",
            "kind": "TaskRun",
            "metadata": {
                "annotations": {
                    "chains.tekton.dev/signed": "true",
                    "operator-sdk/primary-resource": "ex-registry-sh-869ae581/snapshot-sample-869ae581-bsrlj",
                    "operator-sdk/primary-resource-type": "Release.appstudio.redhat.com",
                    "pipeline.tekton.dev/release": "70f7308",
                    "results.tekton.dev/childReadyForDeletion": "true",
                    "results.tekton.dev/record": "ex-registry-sh-managed-869ae581/results/add9a4ba-a70a-422c-b994-67c1bcbfd6b8/records/44b37f01-f228-4ed2-8f94-668f100ccf45",
                    "results.tekton.dev/result": "ex-registry-sh-managed-869ae581/results/add9a4ba-a70a-422c-b994-67c1bcbfd6b8",
                    "results.tekton.dev/stored": "true",
                    "tekton.dev/pipelines.minVersion": "0.12.1",
                    "tekton.dev/tags": "release"
                },
                "creationTimestamp": "2026-08-26T17:48:42Z",
                "finalizers": [
                    "chains.tekton.dev/taskrun",
                    "results.tekton.dev/taskrun"
                ],
                "generation": 1,
                "labels": {
                    "app.kubernetes.io/managed-by": "tekton-pipelines",
                    "appstudio.openshift.io/application": "appstudio",
                    "appstudio.openshift.io/service": "release",
                    "appstudio.openshift.io/snapshot": "snapshot-sample-869ae581",
                    "pipelines.appstudio.openshift.io/type": "managed",
                    "release.appstudio.openshift.io/attempt": "0",
                    "release.appstudio.openshift.io/name": "snapshot-sample-869ae581-bsrlj",
                    "release.appstudio.openshift.io/namespace": "ex-registry-sh-869ae581",
                    "tekton.dev/memberOf": "tasks",
                    "tekton.dev/pipeline": "push-to-external-registry",
                    "tekton.dev/pipelineRun": "managed-hgppl",
                    "tekton.dev/pipelineRunUID": "add9a4ba-a70a-422c-b994-67c1bcbfd6b8",
                    "tekton.dev/pipelineTask": "reduce-snapshot",
                    "tekton.dev/task": "reduce-snapshot"
                },
                "name": "managed-hgppl-reduce-snapshot",
                "namespace": "ex-registry-sh-managed-869ae581",
                "ownerReferences": [
                    {
                        "apiVersion": "tekton.dev/v1",
                        "blockOwnerDeletion": true,
                        "controller": true,
                        "kind": "PipelineRun",
                        "name": "managed-hgppl",
                        "uid": "add9a4ba-a70a-422c-b994-67c1bcbfd6b8"
                    }
                ],
                "resourceVersion": "9620",
                "uid": "44b37f01-f228-4ed2-8f94-668f100ccf45"
            },
            "spec": {
                "params": [
                    {
                        "name": "SNAPSHOT",
                        "value": "/var/workdir/release/add9a4ba-a70a-422c-b994-67c1bcbfd6b8/snapshot_spec.json"
                    },
                    {
                        "name": "SINGLE_COMPONENT",
                        "value": "false"
                    },
                    {
                        "name": "SINGLE_COMPONENT_CUSTOM_RESOURCE",
                        "value": "snapshot/snapshot-sample-869ae581"
                    },
                    {
                        "name": "SINGLE_COMPONENT_CUSTOM_RESOURCE_NS",
                        "value": "ex-registry-sh-869ae581"
                    },
                    {
                        "name": "SNAPSHOT_PATH",
                        "value": "/var/workdir/release/add9a4ba-a70a-422c-b994-67c1bcbfd6b8/snapshot_spec.json"
                    },
                    {
                        "name": "ociStorage",
                        "value": "quay-service.quay/test-org/trusted-artifacts"
                    },
                    {
                        "name": "sourceDataArtifact",
                        "value": "oci:quay-service.quay/test-org/trusted-artifacts@sha256:fb7aea1a4762e1869e9f188c03e0db2cad0ef55d35963b0134f5b2bf5f30fce0"
                    },
                    {
                        "name": "dataDir",
                        "value": "/var/workdir/release"
                    },
                    {
                        "name": "trustedArtifactsDebug",
                        "value": ""
                    },
                    {
                        "name": "taskGitUrl",
                        "value": "https://github.com/swickersh/release-service-catalog"
                    },
                    {
                        "name": "taskGitRevision",
                        "value": "4d8f5d74eb4405ac637042fde05a3330b26bb548"
                    }
                ],
                "serviceAccountName": "release-service-account",
                "taskRef": {
                    "params": [
                        {
                            "name": "url",
                            "value": "https://github.com/swickersh/release-service-catalog"
                        },
                        {
                            "name": "revision",
                            "value": "4d8f5d74eb4405ac637042fde05a3330b26bb548"
                        },
                        {
                            "name": "pathInRepo",
                            "value": "tasks/managed/reduce-snapshot/reduce-snapshot.yaml"
                        }
                    ],
                    "resolver": "git"
                },
                "timeout": "3h50m0s"
            },
            "status": {
                "artifacts": {},
                "completionTime": "2026-08-26T17:49:28Z",
                "conditions": [
                    {
                        "lastTransitionTime": "2026-08-26T17:49:28Z",
                        "message": "All Steps have completed executing",
                        "reason": "Succeeded",
                        "status": "True",
                        "type": "Succeeded"
                    }
                ],
                "podName": "managed-hgppl-reduce-snapshot-pod",
                "provenance": {
                    "featureFlags": {
                        "awaitSidecarReadiness": true,
                        "coschedule": "workspaces",
                        "enableAPIFields": "beta",
                        "enableProvenanceInStatus": true,
                        "enforceNonfalsifiability": "none",
                        "maxResultSize": 4096,
                        "resultExtractionMethod": "termination-message",
                        "runningInEnvWithInjectedSidecars": true,
                        "sendCloudEventsForRuns": true,
                        "verificationNoMatchPolicy": "ignore"
                    },
                    "refSource": {
                        "digest": {
                            "sha1": "4d8f5d74eb4405ac637042fde05a3330b26bb548"
                        },
                        "entryPoint": "tasks/managed/reduce-snapshot/reduce-snapshot.yaml",
                        "uri": "git+https://github.com/swickersh/release-service-catalog"
                    }
                },
                "results": [
                    {
                        "name": "sourceDataArtifact",
                        "type": "string",
                        "value": "oci:quay-service.quay/test-org/trusted-artifacts@sha256:37145077f122f4156850e48a6e6eacb7c486d6f73e5dd8a1ef21c4652768fcce"
                    }
                ],
                "startTime": "2026-08-26T17:48:42Z",
                "steps": [
                    {
                        "container": "step-use-trusted-artifact",
                        "imageID": "quay.io/konflux-ci/build-trusted-artifacts@sha256:9bd32f6bafb517b309e11a2d89365052b4ab3f1c9c23c4ffd45aff6f03960476",
                        "name": "use-trusted-artifact",
                        "provenance": {},
                        "terminated": {
                            "containerID": "containerd://5efb758d6e2b84710e35f7b2732f340fe62931da2276a6d4fda1298422cabd58",
                            "exitCode": 0,
                            "finishedAt": "2026-08-26T17:49:26Z",
                            "reason": "Completed",
                            "startedAt": "2026-08-26T17:49:26Z"
                        },
                        "terminationReason": "Completed"
                    },
                    {
                        "container": "step-reduce-snapshot",
                        "imageID": "quay.io/konflux-ci/release-service-utils@sha256:52e87af53ca4c537894af6e4c228dd471f475de217fbd13b7cc1ce6747c37aed",
                        "name": "reduce-snapshot",
                        "provenance": {},
                        "terminated": {
                            "containerID": "containerd://6dcb14b83de0d3e7c30640576fd2ff2d72f2d146aff4589eed25d07f3657dab3",
                            "exitCode": 0,
                            "finishedAt": "2026-08-26T17:49:27Z",
                            "reason": "Completed",
                            "startedAt": "2026-08-26T17:49:27Z"
                        },
                        "terminationReason": "Completed"
                    },
                    {
                        "container": "step-create-trusted-artifact",
                        "imageID": "quay.io/konflux-ci/build-trusted-artifacts@sha256:9bd32f6bafb517b309e11a2d89365052b4ab3f1c9c23c4ffd45aff6f03960476",
                        "name": "create-trusted-artifact",
                        "provenance": {},
                        "terminated": {
                            "containerID": "containerd://a6fcfd427ffd7f8fbcb4f99db5a56b9038aad9cc8139a31dfbc8e0dfcf29cec7",
                            "exitCode": 0,
                            "finishedAt": "2026-08-26T17:49:27Z",
                            "message": "[{\"key\":\"sourceDataArtifact\",\"value\":\"oci:quay-service.quay/test-org/trusted-artifacts@sha256:37145077f122f4156850e48a6e6eacb7c486d6f73e5dd8a1ef21c4652768fcce\",\"type\":1}]",
                            "reason": "Completed",
                            "startedAt": "2026-08-26T17:49:27Z"
                        },
                        "terminationReason": "Completed"
                    }
                ],
                "taskSpec": {
                    "description": "Tekton task to reduce a snapshot to a single component based on the component that the snapshot was built for.",
                    "params": [
                        {
                            "description": "String representation of Snapshot spec",
                            "name": "SNAPSHOT",
                            "type": "string"
                        },
                        {
                            "description": "Single mode component enabled",
                            "name": "SINGLE_COMPONENT",
                            "type": "string"
                        },
                        {
                            "description": "Custom Resource to query for built component in Snapshot",
                            "name": "SINGLE_COMPONENT_CUSTOM_RESOURCE",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Namespace where Custom Resource is found",
                            "name": "SINGLE_COMPONENT_CUSTOM_RESOURCE_NS",
                            "type": "string"
                        },
                        {
                            "description": "The location to place the reduced Snapshot",
                            "name": "SNAPSHOT_PATH",
                            "type": "string"
                        },
                        {
                            "default": "empty",
                            "description": "The OCI repository where the Trusted Artifacts are stored",
                            "name": "ociStorage",
                            "type": "string"
                        },
                        {
                            "default": "1d",
                            "description": "Expiration date for the trusted artifacts created in the OCI repository. An empty string means the artifacts do not expire",
                            "name": "ociArtifactExpiresAfter",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Flag to enable debug logging in trusted artifacts. Set to a non-empty string to enable",
                            "name": "trustedArtifactsDebug",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "oras options to pass to Trusted Artifacts calls",
                            "name": "orasOptions",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Location of trusted artifacts to be used to populate data directory",
                            "name": "sourceDataArtifact",
                            "type": "string"
                        },
                        {
                            "default": "/var/workdir/release",
                            "description": "The location where data will be stored",
                            "name": "dataDir",
                            "type": "string"
                        },
                        {
                            "description": "The url to the git repo where the release-service-catalog tasks and stepactions to be used are stored",
                            "name": "taskGitUrl",
                            "type": "string"
                        },
                        {
                            "description": "The revision in the taskGitUrl repo to be used",
                            "name": "taskGitRevision",
                            "type": "string"
                        },
                        {
                            "default": "trusted-ca",
                            "description": "The name of the ConfigMap to read CA bundle data from",
                            "name": "caTrustConfigMapName",
                            "type": "string"
                        },
                        {
                            "default": "ca-bundle.crt",
                            "description": "The name of the key in the ConfigMap that contains the CA bundle data",
                            "name": "caTrustConfigMapKey",
                            "type": "string"
                        },
                        {
                            "default": "/mnt/trusted-ca/ca-bundle.crt",
                            "description": "Path to CA certificate bundle for TLS verification with self-signed certificates",
                            "name": "caCertPath",
                            "type": "string"
                        }
                    ],
                    "results": [
                        {
                            "description": "Produced trusted data artifact",
                            "name": "sourceDataArtifact",
                            "type": "string"
                        }
                    ],
                    "stepTemplate": {
                        "computeResources": {},
                        "env": [
                            {
                                "name": "IMAGE_EXPIRES_AFTER",
                                "value": "1d"
                            },
                            {
                                "name": "ORAS_OPTIONS"
                            },
                            {
                                "name": "DEBUG"
                            }
                        ],
                        "securityContext": {
                            "runAsUser": 1001
                        },
                        "volumeMounts": [
                            {
                                "mountPath": "/var/workdir",
                                "name": "workdir"
                            },
                            {
                                "mountPath": "/mnt/trusted-ca",
                                "name": "trusted-ca",
                                "readOnly": true
                            }
                        ]
                    },
                    "steps": [
                        {
                            "args": [
                                "use",
                                "oci:quay-service.quay/test-org/trusted-artifacts@sha256:fb7aea1a4762e1869e9f188c03e0db2cad0ef55d35963b0134f5b2bf5f30fce0=/var/workdir/release"
                            ],
                            "computeResources": {
                                "limits": {
                                    "memory": "64Mi"
                                },
                                "requests": {
                                    "cpu": "30m",
                                    "memory": "64Mi"
                                }
                            },
                            "env": [
                                {
                                    "name": "HOME",
                                    "value": "/tekton/home"
                                },
                                {
                                    "name": "ORAS_OPTIONS"
                                },
                                {
                                    "name": "CA_FILE",
                                    "value": "/mnt/trusted-ca/ca-bundle.crt"
                                }
                            ],
                            "image": "quay.io/konflux-ci/build-trusted-artifacts@sha256:9bd32f6bafb517b309e11a2d89365052b4ab3f1c9c23c4ffd45aff6f03960476",
                            "name": "use-trusted-artifact"
                        },
                        {
                            "command": [
                                "python3",
                                "-m",
                                "reduce_snapshot"
                            ],
                            "computeResources": {
                                "limits": {
                                    "memory": "256Mi"
                                },
                                "requests": {
                                    "cpu": "50m",
                                    "memory": "256Mi"
                                }
                            },
                            "env": [
                                {
                                    "name": "SINGLE_COMPONENT",
                                    "value": "false"
                                },
                                {
                                    "name": "CUSTOM_RESOURCE",
                                    "value": "snapshot/snapshot-sample-869ae581"
                                },
                                {
                                    "name": "CUSTOM_RESOURCE_NAMESPACE",
                                    "value": "ex-registry-sh-869ae581"
                                },
                                {
                                    "name": "SNAPSHOT",
                                    "value": "/var/workdir/release/add9a4ba-a70a-422c-b994-67c1bcbfd6b8/snapshot_spec.json"
                                },
                                {
                                    "name": "SNAPSHOT_PATH",
                                    "value": "/var/workdir/release/add9a4ba-a70a-422c-b994-67c1bcbfd6b8/snapshot_spec.json"
                                }
                            ],
                            "image": "quay.io/konflux-ci/release-service-utils@sha256:52e87af53ca4c537894af6e4c228dd471f475de217fbd13b7cc1ce6747c37aed",
                            "name": "reduce-snapshot"
                        },
                        {
                            "args": [
                                "create",
                                "--store",
                                "quay-service.quay/test-org/trusted-artifacts",
                                "/tekton/results/sourceDataArtifact=/var/workdir/release"
                            ],
                            "computeResources": {
                                "limits": {
                                    "memory": "128Mi"
                                },
                                "requests": {
                                    "cpu": "250m",
                                    "memory": "128Mi"
                                }
                            },
                            "env": [
                                {
                                    "name": "HOME",
                                    "value": "/tekton/home"
                                },
                                {
                                    "name": "ORAS_OPTIONS"
                                },
                                {
                                    "name": "CA_FILE",
                                    "value": "/mnt/trusted-ca/ca-bundle.crt"
                                }
                            ],
                            "image": "quay.io/konflux-ci/build-trusted-artifacts@sha256:9bd32f6bafb517b309e11a2d89365052b4ab3f1c9c23c4ffd45aff6f03960476",
                            "name": "create-trusted-artifact"
                        }
                    ],
                    "volumes": [
                        {
                            "emptyDir": {},
                            "name": "workdir"
                        },
                        {
                            "configMap": {
                                "items": [
                                    {
                                        "key": "ca-bundle.crt",
                                        "path": "ca-bundle.crt"
                                    }
                                ],
                                "name": "trusted-ca",
                                "optional": true
                            },
                            "name": "trusted-ca"
                        }
                    ]
                }
            }
        },
        {
            "apiVersion": "tekton.dev/v1",
            "kind": "TaskRun",
            "metadata": {
                "annotations": {
                    "chains.tekton.dev/signed": "true",
                    "operator-sdk/primary-resource": "ex-registry-sh-869ae581/snapshot-sample-869ae581-bsrlj",
                    "operator-sdk/primary-resource-type": "Release.appstudio.redhat.com",
                    "pipeline.tekton.dev/release": "70f7308",
                    "results.tekton.dev/childReadyForDeletion": "true",
                    "results.tekton.dev/record": "ex-registry-sh-managed-869ae581/results/add9a4ba-a70a-422c-b994-67c1bcbfd6b8/records/0051de21-66a4-4941-b589-9274774e82a6",
                    "results.tekton.dev/result": "ex-registry-sh-managed-869ae581/results/add9a4ba-a70a-422c-b994-67c1bcbfd6b8",
                    "results.tekton.dev/stored": "true",
                    "tekton.dev/pipelines.minVersion": "0.12.1",
                    "tekton.dev/tags": "release"
                },
                "creationTimestamp": "2026-08-26T17:53:27Z",
                "finalizers": [
                    "chains.tekton.dev/taskrun",
                    "results.tekton.dev/taskrun"
                ],
                "generation": 1,
                "labels": {
                    "app.kubernetes.io/managed-by": "tekton-pipelines",
                    "appstudio.openshift.io/application": "appstudio",
                    "appstudio.openshift.io/service": "release",
                    "appstudio.openshift.io/snapshot": "snapshot-sample-869ae581",
                    "pipelines.appstudio.openshift.io/type": "managed",
                    "release.appstudio.openshift.io/attempt": "0",
                    "release.appstudio.openshift.io/name": "snapshot-sample-869ae581-bsrlj",
                    "release.appstudio.openshift.io/namespace": "ex-registry-sh-869ae581",
                    "tekton.dev/memberOf": "tasks",
                    "tekton.dev/pipeline": "push-to-external-registry",
                    "tekton.dev/pipelineRun": "managed-hgppl",
                    "tekton.dev/pipelineRunUID": "add9a4ba-a70a-422c-b994-67c1bcbfd6b8",
                    "tekton.dev/pipelineTask": "update-cr-status",
                    "tekton.dev/task": "update-cr-status"
                },
                "name": "managed-hgppl-update-cr-status",
                "namespace": "ex-registry-sh-managed-869ae581",
                "ownerReferences": [
                    {
                        "apiVersion": "tekton.dev/v1",
                        "blockOwnerDeletion": true,
                        "controller": true,
                        "kind": "PipelineRun",
                        "name": "managed-hgppl",
                        "uid": "add9a4ba-a70a-422c-b994-67c1bcbfd6b8"
                    }
                ],
                "resourceVersion": "11889",
                "uid": "0051de21-66a4-4941-b589-9274774e82a6"
            },
            "spec": {
                "params": [
                    {
                        "name": "resource",
                        "value": "ex-registry-sh-869ae581/snapshot-sample-869ae581-bsrlj"
                    },
                    {
                        "name": "resultsDirPath",
                        "value": "add9a4ba-a70a-422c-b994-67c1bcbfd6b8/results"
                    },
                    {
                        "name": "ociStorage",
                        "value": "quay-service.quay/test-org/trusted-artifacts"
                    },
                    {
                        "name": "resultArtifacts",
                        "value": [
                            "oci:quay-service.quay/test-org/trusted-artifacts@sha256:f035b439f961c2bfbe1e19526039b26d5070d98eb7366dc8d9135d8e8e90f379=/var/workdir/release"
                        ]
                    },
                    {
                        "name": "dataDir",
                        "value": "/var/workdir/release"
                    },
                    {
                        "name": "trustedArtifactsDebug",
                        "value": ""
                    },
                    {
                        "name": "taskGitUrl",
                        "value": "https://github.com/swickersh/release-service-catalog"
                    },
                    {
                        "name": "taskGitRevision",
                        "value": "4d8f5d74eb4405ac637042fde05a3330b26bb548"
                    }
                ],
                "serviceAccountName": "release-service-account",
                "taskRef": {
                    "params": [
                        {
                            "name": "url",
                            "value": "https://github.com/swickersh/release-service-catalog"
                        },
                        {
                            "name": "revision",
                            "value": "4d8f5d74eb4405ac637042fde05a3330b26bb548"
                        },
                        {
                            "name": "pathInRepo",
                            "value": "tasks/managed/update-cr-status/update-cr-status.yaml"
                        }
                    ],
                    "resolver": "git"
                },
                "timeout": "3h50m0s"
            },
            "status": {
                "artifacts": {},
                "completionTime": "2026-08-26T17:53:35Z",
                "conditions": [
                    {
                        "lastTransitionTime": "2026-08-26T17:53:35Z",
                        "message": "All Steps have completed executing",
                        "reason": "Succeeded",
                        "status": "True",
                        "type": "Succeeded"
                    }
                ],
                "podName": "managed-hgppl-update-cr-status-pod",
                "provenance": {
                    "featureFlags": {
                        "awaitSidecarReadiness": true,
                        "coschedule": "workspaces",
                        "enableAPIFields": "beta",
                        "enableProvenanceInStatus": true,
                        "enforceNonfalsifiability": "none",
                        "maxResultSize": 4096,
                        "resultExtractionMethod": "termination-message",
                        "runningInEnvWithInjectedSidecars": true,
                        "sendCloudEventsForRuns": true,
                        "verificationNoMatchPolicy": "ignore"
                    },
                    "refSource": {
                        "digest": {
                            "sha1": "4d8f5d74eb4405ac637042fde05a3330b26bb548"
                        },
                        "entryPoint": "tasks/managed/update-cr-status/update-cr-status.yaml",
                        "uri": "git+https://github.com/swickersh/release-service-catalog"
                    }
                },
                "startTime": "2026-08-26T17:53:27Z",
                "steps": [
                    {
                        "container": "step-use-trusted-artifact-array",
                        "imageID": "quay.io/konflux-ci/build-trusted-artifacts@sha256:9bd32f6bafb517b309e11a2d89365052b4ab3f1c9c23c4ffd45aff6f03960476",
                        "name": "use-trusted-artifact-array",
                        "provenance": {},
                        "terminated": {
                            "containerID": "containerd://504339209a93b1f64c0730302b6a1b6e81cc238044e30dcfe02570a082191ea6",
                            "exitCode": 0,
                            "finishedAt": "2026-08-26T17:53:34Z",
                            "reason": "Completed",
                            "startedAt": "2026-08-26T17:53:34Z"
                        },
                        "terminationReason": "Completed"
                    },
                    {
                        "container": "step-update-cr-status",
                        "imageID": "quay.io/konflux-ci/release-service-utils@sha256:5546fa78d3c88d7b6a2e8cff8902f7757f00541d0bbaf113b9f293133894afa3",
                        "name": "update-cr-status",
                        "provenance": {},
                        "terminated": {
                            "containerID": "containerd://e150c1da3ff443ad3b735b06c51e0e70cd65bcfa660ebcc3638fd536aa797d26",
                            "exitCode": 0,
                            "finishedAt": "2026-08-26T17:53:34Z",
                            "reason": "Completed",
                            "startedAt": "2026-08-26T17:53:34Z"
                        },
                        "terminationReason": "Completed"
                    }
                ],
                "taskSpec": {
                    "description": "A tekton task that updates the passed CR status with the contents stored in the files in the resultsDir.",
                    "params": [
                        {
                            "default": "release",
                            "description": "The type of resource that is being patched",
                            "name": "resourceType",
                            "type": "string"
                        },
                        {
                            "default": "artifacts",
                            "description": "The top level key to overwrite in the resource status",
                            "name": "statusKey",
                            "type": "string"
                        },
                        {
                            "description": "The namespaced name of the resource to be patched",
                            "name": "resource",
                            "type": "string"
                        },
                        {
                            "description": "Path to the directory containing the result files in the data workspace which will be added to the\nresource's status\n",
                            "name": "resultsDirPath",
                            "type": "string"
                        },
                        {
                            "default": "empty",
                            "description": "The OCI repository where the Trusted Artifacts are stored",
                            "name": "ociStorage",
                            "type": "string"
                        },
                        {
                            "default": "1d",
                            "description": "Expiration date for the trusted artifacts created in the OCI repository. An empty string means the artifacts do not expire",
                            "name": "ociArtifactExpiresAfter",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Flag to enable debug logging in trusted artifacts. Set to a non-empty string to enable",
                            "name": "trustedArtifactsDebug",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "oras options to pass to Trusted Artifacts calls",
                            "name": "orasOptions",
                            "type": "string"
                        },
                        {
                            "default": [],
                            "description": "Array of artifacts to use to obtain results",
                            "name": "resultArtifacts",
                            "type": "array"
                        },
                        {
                            "default": "/var/workdir/release",
                            "description": "The location where data will be stored",
                            "name": "dataDir",
                            "type": "string"
                        },
                        {
                            "description": "The url to the git repo where the release-service-catalog tasks and stepactions to be used are stored",
                            "name": "taskGitUrl",
                            "type": "string"
                        },
                        {
                            "description": "The revision in the taskGitUrl repo to be used",
                            "name": "taskGitRevision",
                            "type": "string"
                        },
                        {
                            "default": "trusted-ca",
                            "description": "The name of the ConfigMap to read CA bundle data from",
                            "name": "caTrustConfigMapName",
                            "type": "string"
                        },
                        {
                            "default": "ca-bundle.crt",
                            "description": "The name of the key in the ConfigMap that contains the CA bundle data",
                            "name": "caTrustConfigMapKey",
                            "type": "string"
                        },
                        {
                            "default": "/mnt/trusted-ca/ca-bundle.crt",
                            "description": "Path to CA certificate bundle for TLS verification with self-signed certificates",
                            "name": "caCertPath",
                            "type": "string"
                        }
                    ],
                    "stepTemplate": {
                        "computeResources": {},
                        "env": [
                            {
                                "name": "IMAGE_EXPIRES_AFTER",
                                "value": "1d"
                            },
                            {
                                "name": "ORAS_OPTIONS"
                            },
                            {
                                "name": "DEBUG"
                            }
                        ],
                        "securityContext": {
                            "runAsUser": 1001
                        },
                        "volumeMounts": [
                            {
                                "mountPath": "/var/workdir",
                                "name": "workdir"
                            },
                            {
                                "mountPath": "/mnt/trusted-ca",
                                "name": "trusted-ca",
                                "readOnly": true
                            }
                        ]
                    },
                    "steps": [
                        {
                            "args": [
                                "use",
                                "oci:quay-service.quay/test-org/trusted-artifacts@sha256:f035b439f961c2bfbe1e19526039b26d5070d98eb7366dc8d9135d8e8e90f379=/var/workdir/release"
                            ],
                            "computeResources": {
                                "limits": {
                                    "memory": "128Mi"
                                },
                                "requests": {
                                    "cpu": "20m",
                                    "memory": "128Mi"
                                }
                            },
                            "env": [
                                {
                                    "name": "HOME",
                                    "value": "/tekton/home"
                                },
                                {
                                    "name": "CA_FILE",
                                    "value": "/mnt/trusted-ca/ca-bundle.crt"
                                }
                            ],
                            "image": "quay.io/konflux-ci/build-trusted-artifacts@sha256:9bd32f6bafb517b309e11a2d89365052b4ab3f1c9c23c4ffd45aff6f03960476",
                            "name": "use-trusted-artifact-array"
                        },
                        {
                            "computeResources": {
                                "limits": {
                                    "memory": "128Mi"
                                },
                                "requests": {
                                    "cpu": "50m",
                                    "memory": "128Mi"
                                }
                            },
                            "image": "quay.io/konflux-ci/release-service-utils@sha256:5546fa78d3c88d7b6a2e8cff8902f7757f00541d0bbaf113b9f293133894afa3",
                            "name": "update-cr-status",
                            "script": "#!/usr/bin/env bash\nset -ex\n\nRESULTS_DIR=\"/var/workdir/release/add9a4ba-a70a-422c-b994-67c1bcbfd6b8/results\"\nTEMP_FILE=\"/tmp/temp.json\"\nRESULTS_JSON=\"/tmp/results.json\"\necho '{}' \u003e \"$RESULTS_JSON\"\n\nfor resultsFile in $([ -d \"$RESULTS_DIR\" ] \u0026\u0026 find \"$RESULTS_DIR\" -type f); do\n    if ! jq . \u003e/dev/null 2\u003e\u00261 \"${resultsFile}\" ; then\n        echo \"Passed results JSON file ${resultsFile} in results directory was not proper JSON.\"\n        exit 1\n    fi\n\n    # Merge with array concatenation for array fields and object merging\n    jq --slurpfile new \"${resultsFile}\" '\n      # Store current values as $base and get all unique keys from both objects\n      . as $base | ($base | keys + ($new[0] | keys)) | unique |\n      # Process each key and build the merged result\n      reduce .[] as $key ({}; . + {($key): (\n        # Case 1: Both values are arrays - concatenate them\n        if ($new[0][$key] | type == \"array\") and ($base[$key] | type == \"array\")\n        then $base[$key] + $new[0][$key]\n        else\n          # Case 2: Both values are objects - merge them recursively\n          if ($new[0][$key] | type == \"object\") and ($base[$key] | type == \"object\")\n          then $base[$key] * $new[0][$key]\n          # Case 3: Default - use new value or fall back to base value\n          else $new[0][$key] // $base[$key]\n          end\n        end\n      )})\n    ' \"$RESULTS_JSON\" \u003e \"$TEMP_FILE\"\n    mv \"$TEMP_FILE\" \"$RESULTS_JSON\"\ndone\n\n# Read the final JSON from the file\nFINAL_JSON=$(cat \"$RESULTS_JSON\")\n\nIFS='/' read -r namespace name \u003c\u003c\u003c \"ex-registry-sh-869ae581/snapshot-sample-869ae581-bsrlj\"\n\n# Create patch file to avoid \"Argument list too long\" error\nPATCH_FILE=\"/tmp/patch-$(date +%s).json\"\necho \"status: {'artifacts':${FINAL_JSON}}\" \u003e \"$PATCH_FILE\"\n\nkubectl --warnings-as-errors=true patch \"release\" -n \"$namespace\" \"$name\" \\\n  --type=merge --subresource status --patch-file \"$PATCH_FILE\"\n\n# Clean up\nrm -f \"$PATCH_FILE\"\n"
                        }
                    ],
                    "volumes": [
                        {
                            "emptyDir": {},
                            "name": "workdir"
                        },
                        {
                            "configMap": {
                                "items": [
                                    {
                                        "key": "ca-bundle.crt",
                                        "path": "ca-bundle.crt"
                                    }
                                ],
                                "name": "trusted-ca",
                                "optional": true
                            },
                            "name": "trusted-ca"
                        }
                    ]
                }
            }
        },
        {
            "apiVersion": "tekton.dev/v1",
            "kind": "TaskRun",
            "metadata": {
                "annotations": {
                    "chains.tekton.dev/signed": "true",
                    "operator-sdk/primary-resource": "ex-registry-sh-869ae581/snapshot-sample-869ae581-bsrlj",
                    "operator-sdk/primary-resource-type": "Release.appstudio.redhat.com",
                    "pipeline.tekton.dev/release": "70f7308",
                    "results.tekton.dev/childReadyForDeletion": "true",
                    "results.tekton.dev/record": "ex-registry-sh-managed-869ae581/results/add9a4ba-a70a-422c-b994-67c1bcbfd6b8/records/0334ea73-9836-4480-8312-a9916f7e0dd2",
                    "results.tekton.dev/result": "ex-registry-sh-managed-869ae581/results/add9a4ba-a70a-422c-b994-67c1bcbfd6b8",
                    "results.tekton.dev/stored": "true",
                    "tekton.dev/pipelines.minVersion": "0.12.1",
                    "tekton.dev/tags": "release"
                },
                "creationTimestamp": "2026-08-26T17:47:31Z",
                "finalizers": [
                    "results.tekton.dev/taskrun",
                    "chains.tekton.dev/taskrun"
                ],
                "generation": 1,
                "labels": {
                    "app.kubernetes.io/managed-by": "tekton-pipelines",
                    "appstudio.openshift.io/application": "appstudio",
                    "appstudio.openshift.io/service": "release",
                    "appstudio.openshift.io/snapshot": "snapshot-sample-869ae581",
                    "pipelines.appstudio.openshift.io/type": "managed",
                    "release.appstudio.openshift.io/attempt": "0",
                    "release.appstudio.openshift.io/name": "snapshot-sample-869ae581-bsrlj",
                    "release.appstudio.openshift.io/namespace": "ex-registry-sh-869ae581",
                    "tekton.dev/memberOf": "tasks",
                    "tekton.dev/pipeline": "push-to-external-registry",
                    "tekton.dev/pipelineRun": "managed-hgppl",
                    "tekton.dev/pipelineRunUID": "add9a4ba-a70a-422c-b994-67c1bcbfd6b8",
                    "tekton.dev/pipelineTask": "verify-access-to-resources",
                    "tekton.dev/task": "verify-access-to-resources"
                },
                "name": "managed-hgppl-verify-access-to-resources",
                "namespace": "ex-registry-sh-managed-869ae581",
                "ownerReferences": [
                    {
                        "apiVersion": "tekton.dev/v1",
                        "blockOwnerDeletion": true,
                        "controller": true,
                        "kind": "PipelineRun",
                        "name": "managed-hgppl",
                        "uid": "add9a4ba-a70a-422c-b994-67c1bcbfd6b8"
                    }
                ],
                "resourceVersion": "8652",
                "uid": "0334ea73-9836-4480-8312-a9916f7e0dd2"
            },
            "spec": {
                "params": [
                    {
                        "name": "release",
                        "value": "ex-registry-sh-869ae581/snapshot-sample-869ae581-bsrlj"
                    },
                    {
                        "name": "releasePlan",
                        "value": "ex-registry-sh-869ae581/source-releaseplan"
                    },
                    {
                        "name": "releasePlanAdmission",
                        "value": "ex-registry-sh-managed-869ae581/demo"
                    },
                    {
                        "name": "releaseServiceConfig",
                        "value": "release-service/release-service-config"
                    },
                    {
                        "name": "snapshot",
                        "value": "ex-registry-sh-869ae581/snapshot-sample-869ae581"
                    },
                    {
                        "name": "requireInternalServices",
                        "value": "false"
                    }
                ],
                "serviceAccountName": "release-service-account",
                "taskRef": {
                    "params": [
                        {
                            "name": "url",
                            "value": "https://github.com/swickersh/release-service-catalog"
                        },
                        {
                            "name": "revision",
                            "value": "4d8f5d74eb4405ac637042fde05a3330b26bb548"
                        },
                        {
                            "name": "pathInRepo",
                            "value": "tasks/managed/verify-access-to-resources/verify-access-to-resources.yaml"
                        }
                    ],
                    "resolver": "git"
                },
                "timeout": "3h50m0s"
            },
            "status": {
                "artifacts": {},
                "completionTime": "2026-08-26T17:47:58Z",
                "conditions": [
                    {
                        "lastTransitionTime": "2026-08-26T17:47:58Z",
                        "message": "All Steps have completed executing",
                        "reason": "Succeeded",
                        "status": "True",
                        "type": "Succeeded"
                    }
                ],
                "podName": "managed-hgppl-verify-access-to-resources-pod",
                "provenance": {
                    "featureFlags": {
                        "awaitSidecarReadiness": true,
                        "coschedule": "workspaces",
                        "enableAPIFields": "beta",
                        "enableProvenanceInStatus": true,
                        "enforceNonfalsifiability": "none",
                        "maxResultSize": 4096,
                        "resultExtractionMethod": "termination-message",
                        "runningInEnvWithInjectedSidecars": true,
                        "sendCloudEventsForRuns": true,
                        "verificationNoMatchPolicy": "ignore"
                    },
                    "refSource": {
                        "digest": {
                            "sha1": "4d8f5d74eb4405ac637042fde05a3330b26bb548"
                        },
                        "entryPoint": "tasks/managed/verify-access-to-resources/verify-access-to-resources.yaml",
                        "uri": "git+https://github.com/swickersh/release-service-catalog"
                    }
                },
                "startTime": "2026-08-26T17:47:32Z",
                "steps": [
                    {
                        "container": "step-verify-access-to-resources",
                        "imageID": "quay.io/konflux-ci/release-service-utils@sha256:5546fa78d3c88d7b6a2e8cff8902f7757f00541d0bbaf113b9f293133894afa3",
                        "name": "verify-access-to-resources",
                        "provenance": {},
                        "terminated": {
                            "containerID": "containerd://1df35c71b07459a18fd7c6d839db152a2067c665618dcc77addb748b00b59beb",
                            "exitCode": 0,
                            "finishedAt": "2026-08-26T17:47:55Z",
                            "reason": "Completed",
                            "startedAt": "2026-08-26T17:47:54Z"
                        },
                        "terminationReason": "Completed"
                    }
                ],
                "taskSpec": {
                    "description": "This Tekton task is used to verify access to various resources in the pipelines. It ensures that the necessary\nresources, such as the release, release plan, release plan admission, release service config and snapshot,\nare available and accessible. Additionally, it checks if internal requests can be created if\n`requireInternalServices` is set to `true`.",
                    "params": [
                        {
                            "description": "Namespace/name of the Release",
                            "name": "release",
                            "type": "string"
                        },
                        {
                            "description": "Namespace/name of the ReleasePlan",
                            "name": "releasePlan",
                            "type": "string"
                        },
                        {
                            "description": "Namespace/name of the ReleasePlanAdmission",
                            "name": "releasePlanAdmission",
                            "type": "string"
                        },
                        {
                            "description": "Namespace/name of the ReleaseServiceConfig",
                            "name": "releaseServiceConfig",
                            "type": "string"
                        },
                        {
                            "description": "Namespace/name of the Snapshot",
                            "name": "snapshot",
                            "type": "string"
                        },
                        {
                            "default": "false",
                            "description": "Whether internal services are required",
                            "name": "requireInternalServices",
                            "type": "string"
                        },
                        {
                            "default": "trusted-ca",
                            "description": "The name of the ConfigMap to read CA bundle data from",
                            "name": "caTrustConfigMapName",
                            "type": "string"
                        },
                        {
                            "default": "ca-bundle.crt",
                            "description": "The name of the key in the ConfigMap that contains the CA bundle data",
                            "name": "caTrustConfigMapKey",
                            "type": "string"
                        }
                    ],
                    "stepTemplate": {
                        "computeResources": {},
                        "securityContext": {
                            "runAsUser": 1001
                        },
                        "volumeMounts": [
                            {
                                "mountPath": "/mnt/trusted-ca",
                                "name": "trusted-ca",
                                "readOnly": true
                            }
                        ]
                    },
                    "steps": [
                        {
                            "computeResources": {
                                "limits": {
                                    "memory": "100Mi"
                                },
                                "requests": {
                                    "cpu": "10m",
                                    "memory": "100Mi"
                                }
                            },
                            "image": "quay.io/konflux-ci/release-service-utils@sha256:5546fa78d3c88d7b6a2e8cff8902f7757f00541d0bbaf113b9f293133894afa3",
                            "name": "verify-access-to-resources",
                            "script": "#!/usr/bin/env bash\n\nORIGIN_NAMESPACE=\"$(cut -f1 -d/ \u003c\u003c\u003c \"ex-registry-sh-869ae581/snapshot-sample-869ae581-bsrlj\")\"\nTARGET_NAMESPACE=\"$(cut -f1 -d/ \u003c\u003c\u003c \"ex-registry-sh-managed-869ae581/demo\")\"\nRSC_NAMESPACE=\"$(cut -f1 -d/ \u003c\u003c\u003c \"release-service/release-service-config\")\"\n\nRELEASE_NAME=\"$(cut -f2 -d/ \u003c\u003c\u003c \"ex-registry-sh-869ae581/snapshot-sample-869ae581-bsrlj\")\"\nRELEASEPLAN_NAME=\"$(cut -f2 -d/ \u003c\u003c\u003c \"ex-registry-sh-869ae581/source-releaseplan\")\"\nRELEASEPLANADMISSION_NAME=\"$(cut -f2 -d/ \u003c\u003c\u003c \"ex-registry-sh-managed-869ae581/demo\")\"\nRELEASESERVICECONFIG_NAME=\"$(cut -f2 -d/ \u003c\u003c\u003c \"release-service/release-service-config\")\"\nSNAPSHOT_NAME=\"$(cut -f2 -d/ \u003c\u003c\u003c \"ex-registry-sh-869ae581/snapshot-sample-869ae581\")\"\n\nCAN_I_READ_RELEASES=\"$(kubectl auth can-i get release/\"${RELEASE_NAME}\" -n \"${ORIGIN_NAMESPACE}\")\"\nCAN_I_READ_RELEASEPLANS=\"$(kubectl auth can-i get releaseplan/\"${RELEASEPLAN_NAME}\"\\\n    -n \"${ORIGIN_NAMESPACE}\")\"\nCAN_I_READ_RELEASEPLANADMISSIONS=\"$(kubectl auth can-i get\\\n    releaseplanadmission/\"${RELEASEPLANADMISSION_NAME}\" -n \"${TARGET_NAMESPACE}\")\"\nCAN_I_READ_RELEASESERVICECONFIG=\"$(kubectl auth can-i get\\\n    releaseserviceconfig/\"${RELEASESERVICECONFIG_NAME}\" -n \"${RSC_NAMESPACE}\")\"\nCAN_I_READ_SNAPSHOTS=\"$(kubectl auth can-i get snapshot/\"${SNAPSHOT_NAME}\" -n \"${ORIGIN_NAMESPACE}\")\"\n\nif [ \"false\" = \"true\" ]; then\n  CAN_I_CREATE_INTERNALREQUESTS=\"$(kubectl auth can-i create internalrequest -n \"${TARGET_NAMESPACE}\")\"\nelse\n  CAN_I_CREATE_INTERNALREQUESTS=\"skipped\"\nfi\n\necho \"\"\necho \"CAN_I_READ_RELEASES? ${CAN_I_READ_RELEASES}\"\necho \"CAN_I_READ_RELEASEPLANS? ${CAN_I_READ_RELEASEPLANS}\"\necho \"CAN_I_READ_RELEASEPLANADMISSIONS? ${CAN_I_READ_RELEASEPLANADMISSIONS}\"\necho \"CAN_I_READ_RELEASESERVICECONFIG? ${CAN_I_READ_RELEASESERVICECONFIG}\"\necho \"CAN_I_READ_SNAPSHOTS? ${CAN_I_READ_SNAPSHOTS}\"\necho \"\"\necho \"CAN_I_CREATE_INTERNALREQUESTS? ${CAN_I_CREATE_INTERNALREQUESTS}\"\necho \"\"\n\nif [ \"${CAN_I_READ_RELEASES}\" = \"no\" ] ||\\\n    [ \"${CAN_I_READ_RELEASEPLANS}\" = \"no\" ] ||\\\n    [ \"${CAN_I_READ_RELEASEPLANADMISSIONS}\" = \"no\" ] ||\\\n    [ \"${CAN_I_READ_RELEASESERVICECONFIG}\" = \"no\" ] ||\\\n    [ \"${CAN_I_READ_SNAPSHOTS}\" = \"no\" ] ||\\\n    [ \"${CAN_I_CREATE_INTERNALREQUESTS}\" = \"no\" ] ; then\n  echo \"Error: Cannot read or create required Release resources!\"\n  echo \"\"\n  echo \"This indicates that your workspace is not correctly setup\"\n  echo \"Please reach out to a workspace administrator\"\n  exit 1\nfi\n\necho \"Access to Release resources verified\"\n"
                        }
                    ],
                    "volumes": [
                        {
                            "configMap": {
                                "items": [
                                    {
                                        "key": "ca-bundle.crt",
                                        "path": "ca-bundle.crt"
                                    }
                                ],
                                "name": "trusted-ca",
                                "optional": true
                            },
                            "name": "trusted-ca"
                        }
                    ]
                }
            }
        },
        {
            "apiVersion": "tekton.dev/v1",
            "kind": "TaskRun",
            "metadata": {
                "annotations": {
                    "chains.tekton.dev/signed": "true",
                    "operator-sdk/primary-resource": "ex-registry-sh-869ae581/snapshot-sample-869ae581-bsrlj",
                    "operator-sdk/primary-resource-type": "Release.appstudio.redhat.com",
                    "pipeline.tekton.dev/release": "70f7308",
                    "results.tekton.dev/childReadyForDeletion": "true",
                    "results.tekton.dev/record": "ex-registry-sh-managed-869ae581/results/add9a4ba-a70a-422c-b994-67c1bcbfd6b8/records/d6913411-f1a2-4004-9449-f5da1441bea4",
                    "results.tekton.dev/result": "ex-registry-sh-managed-869ae581/results/add9a4ba-a70a-422c-b994-67c1bcbfd6b8",
                    "results.tekton.dev/stored": "true",
                    "tekton.dev/pipelines.minVersion": "0.12.1",
                    "tekton.dev/tags": "release"
                },
                "creationTimestamp": "2026-08-26T17:51:56Z",
                "finalizers": [
                    "results.tekton.dev/taskrun",
                    "chains.tekton.dev/taskrun"
                ],
                "generation": 1,
                "labels": {
                    "app.kubernetes.io/managed-by": "tekton-pipelines",
                    "appstudio.openshift.io/application": "appstudio",
                    "appstudio.openshift.io/service": "release",
                    "appstudio.openshift.io/snapshot": "snapshot-sample-869ae581",
                    "pipelines.appstudio.openshift.io/type": "managed",
                    "release.appstudio.openshift.io/attempt": "0",
                    "release.appstudio.openshift.io/name": "snapshot-sample-869ae581-bsrlj",
                    "release.appstudio.openshift.io/namespace": "ex-registry-sh-869ae581",
                    "tekton.dev/memberOf": "tasks",
                    "tekton.dev/pipeline": "push-to-external-registry",
                    "tekton.dev/pipelineRun": "managed-hgppl",
                    "tekton.dev/pipelineRunUID": "add9a4ba-a70a-422c-b994-67c1bcbfd6b8",
                    "tekton.dev/pipelineTask": "verify-conforma"
                },
                "name": "managed-hgppl-verify-conforma",
                "namespace": "ex-registry-sh-managed-869ae581",
                "ownerReferences": [
                    {
                        "apiVersion": "tekton.dev/v1",
                        "blockOwnerDeletion": true,
                        "controller": true,
                        "kind": "PipelineRun",
                        "name": "managed-hgppl",
                        "uid": "add9a4ba-a70a-422c-b994-67c1bcbfd6b8"
                    }
                ],
                "resourceVersion": "11445",
                "uid": "d6913411-f1a2-4004-9449-f5da1441bea4"
            },
            "spec": {
                "params": [
                    {
                        "name": "SNAPSHOT_FILENAME",
                        "value": "add9a4ba-a70a-422c-b994-67c1bcbfd6b8/snapshot_spec.json"
                    },
                    {
                        "name": "SSL_CERT_DIR",
                        "value": "/var/run/secrets/kubernetes.io/serviceaccount"
                    },
                    {
                        "name": "POLICY_CONFIGURATION",
                        "value": "{\"description\":\"Red Hat's enterprise requirements\",\"sources\":[{\"name\":\"Release Policies\",\"policy\":[\"oci::quay.io/enterprise-contract/ec-release-policy:konflux\"],\"data\":[\"github.com/release-engineering/rhtap-ec-policy//data\",\"oci::quay.io/konflux-ci/tekton-catalog/data-acceptable-bundles:latest\"],\"config\":{\"exclude\":[\"step_image_registries\",\"tasks.required_tasks_found:prefetch-dependencies\",\"slsa_source_correlated.source_code_reference_provided\"],\"include\":[\"@slsa3\"]}}],\"publicKey\":\"k8s://ex-registry-sh-managed-869ae581/cosign-public-key\"}"
                    },
                    {
                        "name": "STRICT",
                        "value": "true"
                    },
                    {
                        "name": "IGNORE_REKOR",
                        "value": "true"
                    },
                    {
                        "name": "EXTRA_RULE_DATA",
                        "value": "pipeline_intention=release"
                    },
                    {
                        "name": "WORKERS",
                        "value": "4"
                    },
                    {
                        "name": "SOURCE_DATA_ARTIFACT",
                        "value": "oci:quay-service.quay/test-org/trusted-artifacts@sha256:b122aa1c690395e2110a897eda2b3c89ebc36bf056b00601b0ef35f1907dfbe0"
                    },
                    {
                        "name": "TRUSTED_ARTIFACTS_DEBUG",
                        "value": ""
                    },
                    {
                        "name": "CERTIFICATE_IDENTITY",
                        "value": ""
                    },
                    {
                        "name": "CERTIFICATE_OIDC_ISSUER",
                        "value": ""
                    },
                    {
                        "name": "TUF_MIRROR",
                        "value": ""
                    },
                    {
                        "name": "REKOR_HOST",
                        "value": ""
                    }
                ],
                "serviceAccountName": "release-service-account",
                "taskRef": {
                    "params": [
                        {
                            "name": "url",
                            "value": "https://github.com/conforma/tekton-catalog"
                        },
                        {
                            "name": "revision",
                            "value": "38002d483c4b405e78806ed2d8c9f4c01e91e429"
                        },
                        {
                            "name": "pathInRepo",
                            "value": "tasks/verify-conforma-konflux-ta/0.1/verify-conforma-konflux-ta.yaml"
                        }
                    ],
                    "resolver": "git"
                },
                "timeout": "4h0m0s"
            },
            "status": {
                "artifacts": {},
                "completionTime": "2026-08-26T17:52:54Z",
                "conditions": [
                    {
                        "lastTransitionTime": "2026-08-26T17:52:54Z",
                        "message": "All Steps have completed executing",
                        "reason": "Succeeded",
                        "status": "True",
                        "type": "Succeeded"
                    }
                ],
                "podName": "managed-hgppl-verify-conforma-pod",
                "provenance": {
                    "featureFlags": {
                        "awaitSidecarReadiness": true,
                        "coschedule": "workspaces",
                        "enableAPIFields": "beta",
                        "enableProvenanceInStatus": true,
                        "enforceNonfalsifiability": "none",
                        "maxResultSize": 4096,
                        "resultExtractionMethod": "termination-message",
                        "runningInEnvWithInjectedSidecars": true,
                        "sendCloudEventsForRuns": true,
                        "verificationNoMatchPolicy": "ignore"
                    },
                    "refSource": {
                        "digest": {
                            "sha1": "38002d483c4b405e78806ed2d8c9f4c01e91e429"
                        },
                        "entryPoint": "tasks/verify-conforma-konflux-ta/0.1/verify-conforma-konflux-ta.yaml",
                        "uri": "git+https://github.com/conforma/tekton-catalog"
                    }
                },
                "results": [
                    {
                        "name": "TEST_OUTPUT",
                        "type": "string",
                        "value": "{\"timestamp\":\"1787766773\",\"namespace\":\"\",\"successes\":21,\"failures\":0,\"warnings\":0,\"result\":\"SUCCESS\"}\n"
                    },
                    {
                        "name": "VSA_GENERATED",
                        "type": "string",
                        "value": "false"
                    }
                ],
                "startTime": "2026-08-26T17:51:56Z",
                "steps": [
                    {
                        "container": "step-use-trusted-artifact",
                        "imageID": "quay.io/konflux-ci/build-trusted-artifacts@sha256:9bd32f6bafb517b309e11a2d89365052b4ab3f1c9c23c4ffd45aff6f03960476",
                        "name": "use-trusted-artifact",
                        "provenance": {},
                        "terminated": {
                            "containerID": "containerd://e4d1b68d5064584ff1946a7d61ce2331383f2d4bfb736b86d3b42f2d066ceb1e",
                            "exitCode": 0,
                            "finishedAt": "2026-08-26T17:52:45Z",
                            "reason": "Completed",
                            "startedAt": "2026-08-26T17:52:44Z"
                        },
                        "terminationReason": "Completed"
                    },
                    {
                        "container": "step-initialize-tuf",
                        "imageID": "quay.io/conforma/cli@sha256:b87bab27cdbb6abdc9e41106629a5ae8c5d04c1e2d859d67bc4fc76c5f7f277a",
                        "name": "initialize-tuf",
                        "provenance": {},
                        "terminated": {
                            "containerID": "containerd://24907fe1f48d21e1ff27bfabfee253121298b04df754f34d3bff2d70b8031f4f",
                            "exitCode": 0,
                            "finishedAt": "2026-08-26T17:52:45Z",
                            "reason": "Completed",
                            "startedAt": "2026-08-26T17:52:45Z"
                        },
                        "terminationReason": "Completed"
                    },
                    {
                        "container": "step-reduce",
                        "imageID": "quay.io/conforma/cli@sha256:b87bab27cdbb6abdc9e41106629a5ae8c5d04c1e2d859d67bc4fc76c5f7f277a",
                        "name": "reduce",
                        "provenance": {},
                        "terminated": {
                            "containerID": "containerd://75662d93cb46f1a03fd48daeedbc61b4ea347e89c5ea9e46f4f1f86cff88b9de",
                            "exitCode": 0,
                            "finishedAt": "2026-08-26T17:52:46Z",
                            "reason": "Completed",
                            "startedAt": "2026-08-26T17:52:45Z"
                        },
                        "terminationReason": "Completed"
                    },
                    {
                        "container": "step-pin-policy-bundle",
                        "imageID": "quay.io/conforma/cli@sha256:b87bab27cdbb6abdc9e41106629a5ae8c5d04c1e2d859d67bc4fc76c5f7f277a",
                        "name": "pin-policy-bundle",
                        "provenance": {},
                        "terminated": {
                            "containerID": "containerd://597fad0b1bf0e4959608e76eb5aa9c816053acbe21eb99a882592cf06a717589",
                            "exitCode": 0,
                            "finishedAt": "2026-08-26T17:52:47Z",
                            "reason": "Completed",
                            "startedAt": "2026-08-26T17:52:46Z"
                        },
                        "terminationReason": "Completed"
                    },
                    {
                        "container": "step-validate",
                        "imageID": "quay.io/conforma/cli@sha256:b87bab27cdbb6abdc9e41106629a5ae8c5d04c1e2d859d67bc4fc76c5f7f277a",
                        "name": "validate",
                        "provenance": {},
                        "terminated": {
                            "containerID": "containerd://1bd89e3f9ee1728d5014222495db1e4516a058ad35efbda86593100f57860726",
                            "exitCode": 0,
                            "finishedAt": "2026-08-26T17:52:53Z",
                            "message": "[{\"key\":\"TEST_OUTPUT\",\"value\":\"{\\\"timestamp\\\":\\\"1787766773\\\",\\\"namespace\\\":\\\"\\\",\\\"successes\\\":21,\\\"failures\\\":0,\\\"warnings\\\":0,\\\"result\\\":\\\"SUCCESS\\\"}\\n\",\"type\":1},{\"key\":\"VSA_GENERATED\",\"value\":\"false\",\"type\":1}]",
                            "reason": "Completed",
                            "startedAt": "2026-08-26T17:52:48Z"
                        },
                        "terminationReason": "Completed"
                    },
                    {
                        "container": "step-report-json",
                        "imageID": "quay.io/conforma/cli@sha256:b87bab27cdbb6abdc9e41106629a5ae8c5d04c1e2d859d67bc4fc76c5f7f277a",
                        "name": "report-json",
                        "provenance": {},
                        "terminated": {
                            "containerID": "containerd://899c748120956688cf9c17c66f1818c0cadae8b919fa295b2588d1fa009f8d0d",
                            "exitCode": 0,
                            "finishedAt": "2026-08-26T17:52:53Z",
                            "message": "[{\"key\":\"TEST_OUTPUT\",\"value\":\"{\\\"timestamp\\\":\\\"1787766773\\\",\\\"namespace\\\":\\\"\\\",\\\"successes\\\":21,\\\"failures\\\":0,\\\"warnings\\\":0,\\\"result\\\":\\\"SUCCESS\\\"}\\n\",\"type\":1},{\"key\":\"VSA_GENERATED\",\"value\":\"false\",\"type\":1}]",
                            "reason": "Completed",
                            "startedAt": "2026-08-26T17:52:53Z"
                        },
                        "terminationReason": "Completed"
                    },
                    {
                        "container": "step-summary",
                        "imageID": "quay.io/conforma/cli@sha256:b87bab27cdbb6abdc9e41106629a5ae8c5d04c1e2d859d67bc4fc76c5f7f277a",
                        "name": "summary",
                        "provenance": {},
                        "terminated": {
                            "containerID": "containerd://e0141325d8682126cebc2288d749c809984b1231b5ffe8cd4bbf620dd1501649",
                            "exitCode": 0,
                            "finishedAt": "2026-08-26T17:52:53Z",
                            "message": "[{\"key\":\"TEST_OUTPUT\",\"value\":\"{\\\"timestamp\\\":\\\"1787766773\\\",\\\"namespace\\\":\\\"\\\",\\\"successes\\\":21,\\\"failures\\\":0,\\\"warnings\\\":0,\\\"result\\\":\\\"SUCCESS\\\"}\\n\",\"type\":1},{\"key\":\"VSA_GENERATED\",\"value\":\"false\",\"type\":1}]",
                            "reason": "Completed",
                            "startedAt": "2026-08-26T17:52:53Z"
                        },
                        "terminationReason": "Completed"
                    },
                    {
                        "container": "step-version",
                        "imageID": "quay.io/conforma/cli@sha256:b87bab27cdbb6abdc9e41106629a5ae8c5d04c1e2d859d67bc4fc76c5f7f277a",
                        "name": "version",
                        "provenance": {},
                        "terminated": {
                            "containerID": "containerd://ff840fca1e2535e8ffcf4c82b4beb230e4a42d6d66f989c6a8de72bca2bb41e1",
                            "exitCode": 0,
                            "finishedAt": "2026-08-26T17:52:53Z",
                            "message": "[{\"key\":\"TEST_OUTPUT\",\"value\":\"{\\\"timestamp\\\":\\\"1787766773\\\",\\\"namespace\\\":\\\"\\\",\\\"successes\\\":21,\\\"failures\\\":0,\\\"warnings\\\":0,\\\"result\\\":\\\"SUCCESS\\\"}\\n\",\"type\":1},{\"key\":\"VSA_GENERATED\",\"value\":\"false\",\"type\":1}]",
                            "reason": "Completed",
                            "startedAt": "2026-08-26T17:52:53Z"
                        },
                        "terminationReason": "Completed"
                    },
                    {
                        "container": "step-show-config",
                        "imageID": "quay.io/conforma/cli@sha256:b87bab27cdbb6abdc9e41106629a5ae8c5d04c1e2d859d67bc4fc76c5f7f277a",
                        "name": "show-config",
                        "provenance": {},
                        "terminated": {
                            "containerID": "containerd://616457537bb3caa2fa97a207e9493573ef0ba996a4cc1d56ddfbec40d05d5375",
                            "exitCode": 0,
                            "finishedAt": "2026-08-26T17:52:53Z",
                            "message": "[{\"key\":\"TEST_OUTPUT\",\"value\":\"{\\\"timestamp\\\":\\\"1787766773\\\",\\\"namespace\\\":\\\"\\\",\\\"successes\\\":21,\\\"failures\\\":0,\\\"warnings\\\":0,\\\"result\\\":\\\"SUCCESS\\\"}\\n\",\"type\":1},{\"key\":\"VSA_GENERATED\",\"value\":\"false\",\"type\":1}]",
                            "reason": "Completed",
                            "startedAt": "2026-08-26T17:52:53Z"
                        },
                        "terminationReason": "Completed"
                    },
                    {
                        "container": "step-detailed-report",
                        "imageID": "quay.io/conforma/cli@sha256:b87bab27cdbb6abdc9e41106629a5ae8c5d04c1e2d859d67bc4fc76c5f7f277a",
                        "name": "detailed-report",
                        "provenance": {},
                        "terminated": {
                            "containerID": "containerd://ae190d7db251f029c6d941d64c436fe73db5c38e70c573731e87bc8e90d955f6",
                            "exitCode": 0,
                            "finishedAt": "2026-08-26T17:52:54Z",
                            "message": "[{\"key\":\"TEST_OUTPUT\",\"value\":\"{\\\"timestamp\\\":\\\"1787766773\\\",\\\"namespace\\\":\\\"\\\",\\\"successes\\\":21,\\\"failures\\\":0,\\\"warnings\\\":0,\\\"result\\\":\\\"SUCCESS\\\"}\\n\",\"type\":1},{\"key\":\"VSA_GENERATED\",\"value\":\"false\",\"type\":1}]",
                            "reason": "Completed",
                            "startedAt": "2026-08-26T17:52:54Z"
                        },
                        "terminationReason": "Completed"
                    },
                    {
                        "container": "step-assert",
                        "imageID": "quay.io/conforma/cli@sha256:b87bab27cdbb6abdc9e41106629a5ae8c5d04c1e2d859d67bc4fc76c5f7f277a",
                        "name": "assert",
                        "provenance": {},
                        "terminated": {
                            "containerID": "containerd://ac0a00a17e97107835fc820f759deffe3e9a4b873357f9b1e1dafb3204dfd32f",
                            "exitCode": 0,
                            "finishedAt": "2026-08-26T17:52:54Z",
                            "message": "[{\"key\":\"TEST_OUTPUT\",\"value\":\"{\\\"timestamp\\\":\\\"1787766773\\\",\\\"namespace\\\":\\\"\\\",\\\"successes\\\":21,\\\"failures\\\":0,\\\"warnings\\\":0,\\\"result\\\":\\\"SUCCESS\\\"}\\n\",\"type\":1},{\"key\":\"VSA_GENERATED\",\"value\":\"false\",\"type\":1}]",
                            "reason": "Completed",
                            "startedAt": "2026-08-26T17:52:54Z"
                        },
                        "terminationReason": "Completed"
                    },
                    {
                        "container": "step-create-trusted-artifact",
                        "imageID": "quay.io/konflux-ci/build-trusted-artifacts@sha256:9bd32f6bafb517b309e11a2d89365052b4ab3f1c9c23c4ffd45aff6f03960476",
                        "name": "create-trusted-artifact",
                        "provenance": {},
                        "terminated": {
                            "containerID": "containerd://39834c5f8d3d0e9308c1827dfc4357e858e4ef5a93ff1132ff7d9b99d6fc5a77",
                            "exitCode": 0,
                            "finishedAt": "2026-08-26T17:52:54Z",
                            "reason": "Completed",
                            "startedAt": "2026-08-26T17:52:54Z"
                        },
                        "terminationReason": "Skipped"
                    }
                ],
                "taskSpec": {
                    "description": "Verify the Conforma policy is met",
                    "params": [
                        {
                            "description": "The filename of the `Snapshot` that is located within the trusted artifact\n",
                            "name": "SNAPSHOT_FILENAME",
                            "type": "string"
                        },
                        {
                            "description": "Trusted Artifact to use to obtain the Snapshot to validate.\n",
                            "name": "SOURCE_DATA_ARTIFACT",
                            "type": "string"
                        },
                        {
                            "default": "enterprise-contract-service/default",
                            "description": "Name of the policy configuration (EnterpriseContractPolicy\nresource) to use. `namespace/name` or `name` syntax supported. If\nnamespace is omitted the namespace where the task runs is used.\nYou can also specify a policy configuration using a git url, e.g.\n`github.com/conforma/config//slsa3`.\n",
                            "name": "POLICY_CONFIGURATION",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Public key used to verify traditional long-lived signatures. Must be a valid k8s cosign reference, e.g. k8s://my-space/my-secret where my-secret contains the expected cosign.pub attribute. Required for traditional signing key verification. Will be ignored if any of CERTIFICATE_IDENTITY, CERTIFICATE_IDENTITY_REGEXP, CERTIFICATE_OIDC_ISSUER, or CERTIFICATE_OIDC_ISSUER_REGEXP are provided.",
                            "name": "PUBLIC_KEY",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Rekor host for transparency log lookups",
                            "name": "REKOR_HOST",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Expected identity in the signing certificate for keyless verification. This should be the email or URI that was used when signing. You should provide both CERTIFICATE_OIDC_ISSUER and CERTIFICATE_IDENTITY for keyless verification. The PUBLIC_KEY param will be ignored if this is provided.",
                            "name": "CERTIFICATE_IDENTITY",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Expected OIDC issuer in the signing certificate for keyless verification. This should match the issuer that provided the identity token used for signing. You should provide both CERTIFICATE_OIDC_ISSUER and CERTIFICATE_IDENTITY for keyless verification. The PUBLIC_KEY param will be ignored if this is provided.",
                            "name": "CERTIFICATE_OIDC_ISSUER",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Similar to CERTIFICATE_IDENTITY but the value is a regexp that will be matched. Note that CERTIFICATE_IDENTITY takes precedence over this if both are present.",
                            "name": "CERTIFICATE_IDENTITY_REGEXP",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Similar to CERTIFICATE_OIDC_ISSUER but a regexp that will be matched. Note that CERTIFICATE_OIDC_ISSUER takes precedence over this if both are present.",
                            "name": "CERTIFICATE_OIDC_ISSUER_REGEXP",
                            "type": "string"
                        },
                        {
                            "default": "false",
                            "description": "Skip Rekor transparency log checks during validation. Compatible with traditional signing secret signature checks only. If any of the CERTIFICATE_* keyless verification params are present, this value is disregarded and Rekor transparency log checks are included.",
                            "name": "IGNORE_REKOR",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "TUF mirror URL. Provide a value when NOT using public sigstore deployment.",
                            "name": "TUF_MIRROR",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Path to a directory containing SSL certs to be used when communicating\nwith external services. This is useful when using the integrated registry\nand a local instance of Rekor on a development cluster which may use\ncertificates issued by a not-commonly trusted root CA. In such cases,\n`/var/run/secrets/kubernetes.io/serviceaccount` is a good value. Multiple\npaths can be provided by using the `:` separator.\n",
                            "name": "SSL_CERT_DIR",
                            "type": "string"
                        },
                        {
                            "default": "trusted-ca",
                            "description": "The name of the ConfigMap to read CA bundle data from.",
                            "name": "CA_TRUST_CONFIGMAP_NAME",
                            "type": "string"
                        },
                        {
                            "default": "ca-bundle.crt",
                            "description": "The name of the key in the ConfigMap that contains the CA bundle data.",
                            "name": "CA_TRUST_CONFIG_MAP_KEY",
                            "type": "string"
                        },
                        {
                            "default": "true",
                            "description": "Include rule titles and descriptions in the output. Set to `\"false\"` to disable it.",
                            "name": "INFO",
                            "type": "string"
                        },
                        {
                            "default": "true",
                            "description": "Fail the task if policy fails. Set to `\"false\"` to disable it.",
                            "name": "STRICT",
                            "type": "string"
                        },
                        {
                            "default": "/tekton/home",
                            "description": "Value for the HOME environment variable.",
                            "name": "HOMEDIR",
                            "type": "string"
                        },
                        {
                            "default": "now",
                            "description": "Run policy checks with the provided time.",
                            "name": "EFFECTIVE_TIME",
                            "type": "string"
                        },
                        {
                            "default": "false",
                            "description": "Allow setting EFFECTIVE_TIME to a date in the past.",
                            "name": "ALLOW_PAST_EFFECTIVE_TIME",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Merge additional Rego variables into the policy data. Use syntax \"key=value,key2=value2...\"",
                            "name": "EXTRA_RULE_DATA",
                            "type": "string"
                        },
                        {
                            "default": "sha256:ee5c3a020c9545eca738ed87198af0b235463069b2d72c5dba609364a83321d2",
                            "description": "Optional OCI digest to pin the release policy bundle. When provided, the policy configuration is resolved and the reference oci::quay.io/conforma/release-policy:konflux is replaced with oci::quay.io/conforma/release-policy@\u003cdigest\u003e. Accepts a full digest (sha256:abc123...) or just the hex hash (abc123...).",
                            "name": "POLICY_BUNDLE_DIGEST",
                            "type": "string"
                        },
                        {
                            "default": "4",
                            "description": "Number of parallel workers to use for policy evaluation.\n",
                            "name": "WORKERS",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Use the OPA evaluator instead of the default conftest evaluator. Set to \"1\" to enable.",
                            "name": "EC_USE_OPA",
                            "type": "string"
                        },
                        {
                            "default": "false",
                            "description": "Reduce the Snapshot to only the component whose build caused the Snapshot to be created",
                            "name": "SINGLE_COMPONENT",
                            "type": "string"
                        },
                        {
                            "default": "unknown",
                            "description": "Name, including kind, of the Kubernetes resource to query for labels when single component mode is enabled, e.g. pr/somepipeline.\n",
                            "name": "SINGLE_COMPONENT_CUSTOM_RESOURCE",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Kubernetes namespace where the SINGLE_COMPONENT_NAME is found. Only used when single component mode is enabled.\n",
                            "name": "SINGLE_COMPONENT_CUSTOM_RESOURCE_NS",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "oras options to pass to Trusted Artifacts calls",
                            "name": "ORAS_OPTIONS",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Flag to enable debug logging in trusted artifacts. Set to a non-empty string to enable.",
                            "name": "TRUSTED_ARTIFACTS_DEBUG",
                            "type": "string"
                        },
                        {
                            "default": "/var/workdir/conforma",
                            "description": "Directory to use to extract trusted artifact archive.",
                            "name": "TRUSTED_ARTIFACTS_EXTRACT_DIR",
                            "type": "string"
                        },
                        {
                            "default": "1s",
                            "description": "Base duration for exponential backoff calculation (e.g., \"1s\", \"500ms\")",
                            "name": "RETRY_DURATION",
                            "type": "string"
                        },
                        {
                            "default": "2.0",
                            "description": "Exponential backoff multiplier (e.g., \"2.0\", \"1.5\")",
                            "name": "RETRY_FACTOR",
                            "type": "string"
                        },
                        {
                            "default": "0.1",
                            "description": "Randomness factor for backoff calculation (0.0-1.0, e.g., \"0.1\", \"0.2\")",
                            "name": "RETRY_JITTER",
                            "type": "string"
                        },
                        {
                            "default": "3",
                            "description": "Maximum number of retry attempts",
                            "name": "RETRY_MAX_RETRY",
                            "type": "string"
                        },
                        {
                            "default": "3s",
                            "description": "Maximum wait time between retries (e.g., \"3s\", \"10s\")",
                            "name": "RETRY_MAX_WAIT",
                            "type": "string"
                        },
                        {
                            "default": "false",
                            "description": "Enable VSA generation",
                            "name": "ENABLE_VSA",
                            "type": "string"
                        },
                        {
                            "default": "dsse",
                            "description": "Attestation format: dsse (signed envelope) or predicate (raw JSON)",
                            "name": "ATTESTATION_FORMAT",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Signing key for format=dsse (k8s:// or file:// URL)",
                            "name": "VSA_SIGNING_KEY",
                            "type": "string"
                        },
                        {
                            "default": "local@/var/workdir/conforma/vsa",
                            "description": "VSA upload destination",
                            "name": "VSA_UPLOAD",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "OCI storage URL for trusted artifacts",
                            "name": "ociStorage",
                            "type": "string"
                        }
                    ],
                    "results": [
                        {
                            "description": "Short summary of the policy evaluation for each image",
                            "name": "TEST_OUTPUT",
                            "type": "string"
                        },
                        {
                            "description": "Whether VSAs were generated (true/false)",
                            "name": "VSA_GENERATED",
                            "type": "string"
                        },
                        {
                            "description": "Trusted Artifact URI containing VSA files",
                            "name": "sourceDataArtifact",
                            "type": "string"
                        }
                    ],
                    "stepTemplate": {
                        "computeResources": {},
                        "env": [
                            {
                                "name": "ORAS_OPTIONS"
                            },
                            {
                                "name": "DEBUG"
                            },
                            {
                                "name": "HOME",
                                "value": "/tekton/home"
                            }
                        ],
                        "securityContext": {
                            "runAsUser": 1001
                        },
                        "volumeMounts": [
                            {
                                "mountPath": "/var/workdir",
                                "name": "workdir"
                            },
                            {
                                "mountPath": "/mnt/trusted-ca",
                                "name": "trusted-ca",
                                "readOnly": true
                            }
                        ]
                    },
                    "steps": [
                        {
                            "args": [
                                "use",
                                "oci:quay-service.quay/test-org/trusted-artifacts@sha256:b122aa1c690395e2110a897eda2b3c89ebc36bf056b00601b0ef35f1907dfbe0=/var/workdir/conforma"
                            ],
                            "computeResources": {},
                            "env": [
                                {
                                    "name": "CA_FILE",
                                    "value": "/mnt/trusted-ca/ca-bundle.crt"
                                }
                            ],
                            "image": "quay.io/konflux-ci/build-trusted-artifacts@sha256:9bd32f6bafb517b309e11a2d89365052b4ab3f1c9c23c4ffd45aff6f03960476",
                            "name": "use-trusted-artifact"
                        },
                        {
                            "computeResources": {},
                            "env": [
                                {
                                    "name": "TUF_MIRROR"
                                }
                            ],
                            "image": "quay.io/conforma/cli@sha256:b87bab27cdbb6abdc9e41106629a5ae8c5d04c1e2d859d67bc4fc76c5f7f277a",
                            "imagePullPolicy": "IfNotPresent",
                            "name": "initialize-tuf",
                            "script": "set -euo pipefail\n\nif [[ -z \"${TUF_MIRROR:-}\" ]]; then\n    echo 'TUF_MIRROR parameter not provided. Skipping TUF root initialization.'\n    exit\nfi\n\necho 'Initializing TUF root...'\nec sigstore initialize --mirror \"${TUF_MIRROR}\" --root \"${TUF_MIRROR}/root.json\"\necho 'Done!'"
                        },
                        {
                            "command": [
                                "reduce-snapshot.sh"
                            ],
                            "computeResources": {},
                            "env": [
                                {
                                    "name": "SNAPSHOT",
                                    "value": "/var/workdir/conforma/add9a4ba-a70a-422c-b994-67c1bcbfd6b8/snapshot_spec.json"
                                },
                                {
                                    "name": "SINGLE_COMPONENT",
                                    "value": "false"
                                },
                                {
                                    "name": "CUSTOM_RESOURCE",
                                    "value": "unknown"
                                },
                                {
                                    "name": "CUSTOM_RESOURCE_NAMESPACE"
                                },
                                {
                                    "name": "SNAPSHOT_PATH",
                                    "value": "/tekton/home/snapshot.json"
                                }
                            ],
                            "image": "quay.io/conforma/cli@sha256:b87bab27cdbb6abdc9e41106629a5ae8c5d04c1e2d859d67bc4fc76c5f7f277a",
                            "imagePullPolicy": "IfNotPresent",
                            "name": "reduce",
                            "onError": "continue"
                        },
                        {
                            "command": [
                                "pin-konflux-policy-bundle.sh"
                            ],
                            "computeResources": {},
                            "env": [
                                {
                                    "name": "POLICY_CONFIGURATION",
                                    "value": "{\"description\":\"Red Hat's enterprise requirements\",\"sources\":[{\"name\":\"Release Policies\",\"policy\":[\"oci::quay.io/enterprise-contract/ec-release-policy:konflux\"],\"data\":[\"github.com/release-engineering/rhtap-ec-policy//data\",\"oci::quay.io/konflux-ci/tekton-catalog/data-acceptable-bundles:latest\"],\"config\":{\"exclude\":[\"step_image_registries\",\"tasks.required_tasks_found:prefetch-dependencies\",\"slsa_source_correlated.source_code_reference_provided\"],\"include\":[\"@slsa3\"]}}],\"publicKey\":\"k8s://ex-registry-sh-managed-869ae581/cosign-public-key\"}"
                                },
                                {
                                    "name": "POLICY_BUNDLE_DIGEST",
                                    "value": "sha256:ee5c3a020c9545eca738ed87198af0b235463069b2d72c5dba609364a83321d2"
                                }
                            ],
                            "image": "quay.io/conforma/cli@sha256:b87bab27cdbb6abdc9e41106629a5ae8c5d04c1e2d859d67bc4fc76c5f7f277a",
                            "imagePullPolicy": "IfNotPresent",
                            "name": "pin-policy-bundle",
                            "onError": "continue"
                        },
                        {
                            "computeResources": {
                                "limits": {
                                    "memory": "2Gi"
                                },
                                "requests": {
                                    "cpu": "250m",
                                    "memory": "2Gi"
                                }
                            },
                            "env": [
                                {
                                    "name": "POLICY_CONFIGURATION",
                                    "value": "{\"description\":\"Red Hat's enterprise requirements\",\"sources\":[{\"name\":\"Release Policies\",\"policy\":[\"oci::quay.io/enterprise-contract/ec-release-policy:konflux\"],\"data\":[\"github.com/release-engineering/rhtap-ec-policy//data\",\"oci::quay.io/konflux-ci/tekton-catalog/data-acceptable-bundles:latest\"],\"config\":{\"exclude\":[\"step_image_registries\",\"tasks.required_tasks_found:prefetch-dependencies\",\"slsa_source_correlated.source_code_reference_provided\"],\"include\":[\"@slsa3\"]}}],\"publicKey\":\"k8s://ex-registry-sh-managed-869ae581/cosign-public-key\"}"
                                },
                                {
                                    "name": "PUBLIC_KEY"
                                },
                                {
                                    "name": "CERTIFICATE_IDENTITY"
                                },
                                {
                                    "name": "CERTIFICATE_OIDC_ISSUER"
                                },
                                {
                                    "name": "CERTIFICATE_IDENTITY_REGEXP"
                                },
                                {
                                    "name": "CERTIFICATE_OIDC_ISSUER_REGEXP"
                                },
                                {
                                    "name": "REKOR_HOST"
                                },
                                {
                                    "name": "IGNORE_REKOR",
                                    "value": "true"
                                },
                                {
                                    "name": "WORKERS",
                                    "value": "4"
                                },
                                {
                                    "name": "INFO",
                                    "value": "true"
                                },
                                {
                                    "name": "EFFECTIVE_TIME",
                                    "value": "now"
                                },
                                {
                                    "name": "ALLOW_PAST_EFFECTIVE_TIME",
                                    "value": "false"
                                },
                                {
                                    "name": "EXTRA_RULE_DATA",
                                    "value": "pipeline_intention=release"
                                },
                                {
                                    "name": "RETRY_MAX_WAIT",
                                    "value": "3s"
                                },
                                {
                                    "name": "RETRY_MAX_RETRY",
                                    "value": "3"
                                },
                                {
                                    "name": "RETRY_DURATION",
                                    "value": "1s"
                                },
                                {
                                    "name": "RETRY_FACTOR",
                                    "value": "2.0"
                                },
                                {
                                    "name": "RETRY_JITTER",
                                    "value": "0.1"
                                },
                                {
                                    "name": "ENABLE_VSA",
                                    "value": "false"
                                },
                                {
                                    "name": "ATTESTATION_FORMAT",
                                    "value": "dsse"
                                },
                                {
                                    "name": "VSA_SIGNING_KEY"
                                },
                                {
                                    "name": "VSA_UPLOAD",
                                    "value": "local@/var/workdir/conforma/vsa"
                                },
                                {
                                    "name": "EC_USE_OPA"
                                },
                                {
                                    "name": "HOMEDIR",
                                    "value": "/tekton/home"
                                },
                                {
                                    "name": "SSL_CERT_DIR",
                                    "value": "/tekton-custom-certs:/etc/ssl/certs:/etc/pki/tls/certs:/system/etc/security/cacerts:/var/run/secrets/kubernetes.io/serviceaccount"
                                }
                            ],
                            "image": "quay.io/conforma/cli@sha256:b87bab27cdbb6abdc9e41106629a5ae8c5d04c1e2d859d67bc4fc76c5f7f277a",
                            "imagePullPolicy": "IfNotPresent",
                            "name": "validate",
                            "onError": "continue",
                            "script": "#!/bin/bash\nset -euo pipefail\n\nif [ -f \"/mnt/trusted-ca/ca-bundle.crt\" ]; then\n    export SSL_CERT_FILE=\"/mnt/trusted-ca/ca-bundle.crt\"\nfi\n\n# Use policy override file if pin-policy-bundle produced one\nif [[ -f \"${HOMEDIR}/policy-with-pinned-bundle.yaml\" ]]; then\n  POLICY_CONFIGURATION=\"${HOMEDIR}/policy-with-pinned-bundle.yaml\"\nfi\n\ncmd_args=(\n  validate\n  image\n  --images=\"${HOMEDIR}/snapshot.json\"\n  --policy=\"${POLICY_CONFIGURATION}\"\n)\n\n# To keep bash logic as thin as possible we deliberately don't sanitize\n# these params. If something is wrong or missing let Conforma handle it.\n\nif [ -n \"${CERTIFICATE_IDENTITY}\" ] || \\\n   [ -n \"${CERTIFICATE_OIDC_ISSUER}\" ] || \\\n   [ -n \"${CERTIFICATE_IDENTITY_REGEXP}\" ] || \\\n   [ -n \"${CERTIFICATE_OIDC_ISSUER_REGEXP}\" ]; then\n  # If *any* of the above are non-empty assume the intention is to\n  # try keyless verification\n\n  if [ -n \"${CERTIFICATE_IDENTITY}\" ]; then\n    cmd_args+=(\n      --certificate-identity=\"${CERTIFICATE_IDENTITY}\"\n    )\n  elif [ -n \"${CERTIFICATE_IDENTITY_REGEXP}\" ]; then\n    cmd_args+=(\n      --certificate-identity-regexp=\"${CERTIFICATE_IDENTITY_REGEXP}\"\n    )\n  fi\n\n  if [ -n \"${CERTIFICATE_OIDC_ISSUER}\" ]; then\n    cmd_args+=(\n      --certificate-oidc-issuer=\"${CERTIFICATE_OIDC_ISSUER}\"\n    )\n  elif [ -n \"${CERTIFICATE_OIDC_ISSUER_REGEXP}\" ]; then\n    cmd_args+=(\n      --certificate-oidc-issuer-regexp=\"${CERTIFICATE_OIDC_ISSUER_REGEXP}\"\n    )\n  fi\n\n  # Force --ignore-rekor to false since we need rekor\n  cmd_args+=(\n    --ignore-rekor=false\n  )\nelse\n  # Assume traditional signing secret verification\n  cmd_args+=(\n    --public-key=\"${PUBLIC_KEY}\"\n    --ignore-rekor=\"${IGNORE_REKOR}\"\n  )\nfi\n\ncmd_args+=(\n  --rekor-url=\"${REKOR_HOST}\"\n  --workers=\"${WORKERS}\"\n  --info=\"${INFO}\"\n  --timeout=0\n  --strict=false\n  --show-successes=true\n  --show-policy-docs-link=true\n  --effective-time=\"${EFFECTIVE_TIME}\"\n  --allow-past-effective-time=\"${ALLOW_PAST_EFFECTIVE_TIME}\"\n  --extra-rule-data=\"${EXTRA_RULE_DATA}\"\n  --retry-max-wait=\"${RETRY_MAX_WAIT}\"\n  --retry-max-retry=\"${RETRY_MAX_RETRY}\"\n  --retry-duration=\"${RETRY_DURATION}\"\n  --retry-factor=\"${RETRY_FACTOR}\"\n  --retry-jitter=\"${RETRY_JITTER}\"\n  --output=\"text=${HOMEDIR}/text-report.txt?show-successes=false\"\n  --output=\"json=${HOMEDIR}/report-json.json\"\n  --output=\"appstudio=/tekton/results/TEST_OUTPUT\"\n)\n\n# Add VSA arguments if enabled\nif [[ \"${ENABLE_VSA}\" == \"true\" ]]; then\n  cmd_args+=(\n    --vsa=\"true\"\n    --attestation-format=\"${ATTESTATION_FORMAT}\"\n  )\n\n\n  if [[ \"${ATTESTATION_FORMAT}\" == \"dsse\" ]]; then\n    if [[ -z \"${VSA_SIGNING_KEY}\" ]]; then\n      echo \"ERROR: VSA_SIGNING_KEY required for format=dsse\" \u003e\u00262\n      exit 1\n    fi\n    cmd_args+=(\n      --vsa-signing-key=\"${VSA_SIGNING_KEY}\"\n      --vsa-upload=\"${VSA_UPLOAD}\"\n    )\n  fi\n\n  # ec requires --attestation-output-dir to be under /tmp or cwd.\n  # Write there first, then copy to the workdir so\n  # create-trusted-artifact includes them in the archive.\n  VSA_TMP_DIR=\"/tmp/vsa-output\"\n  mkdir -p \"$VSA_TMP_DIR\"\n  cmd_args+=(\n    --attestation-output-dir=\"$VSA_TMP_DIR\"\n  )\n\n  echo -n \"true\" \u003e /tekton/results/VSA_GENERATED\nelse\n  echo -n \"false\" \u003e /tekton/results/VSA_GENERATED\nfi\n\n# Execute Conforma with constructed arguments\nec \"${cmd_args[@]}\"\n\n# Copy VSA output from /tmp to workdir for trusted artifact archival\nif [[ \"${ENABLE_VSA}\" == \"true\" ]]; then\n  # Extract local path from VSA_UPLOAD for output directory\n  # VSA_UPLOAD format is \"local@/path/to/dir\"\n  # Fixme: Because of -o pipefail this will fail the whole task when the grep doesn't match\n  VSA_LOCAL_PATH=$(echo \"${VSA_UPLOAD}\" | grep -oE '^local@[^ ]+' | sed 's/^local@//' | head -n1 || true)\n  if [[ -n \"$VSA_LOCAL_PATH\" \u0026\u0026 -d \"/tmp/vsa-output\" ]]; then\n    mkdir -p \"$VSA_LOCAL_PATH\"\n    cp -r /tmp/vsa-output/* \"$VSA_LOCAL_PATH\"/ 2\u003e/dev/null || true\n    # Include raw JSON report for downstream SLSA VSA generation\n    cp \"${HOMEDIR}/report-json.json\" \"$VSA_LOCAL_PATH\"/ 2\u003e/dev/null || true\n  fi\nfi\n"
                        },
                        {
                            "args": [
                                "jq . /tekton/home/report-json.json | awk '{gsub(/^ +/, \"\"); acc += length; if (acc \u003e= 8000) { printf \"\\n\"; acc=length } printf $0 }'"
                            ],
                            "command": [
                                "sh",
                                "-c"
                            ],
                            "computeResources": {},
                            "image": "quay.io/conforma/cli@sha256:b87bab27cdbb6abdc9e41106629a5ae8c5d04c1e2d859d67bc4fc76c5f7f277a",
                            "imagePullPolicy": "IfNotPresent",
                            "name": "report-json",
                            "onError": "continue"
                        },
                        {
                            "args": [
                                ".",
                                "/tekton/results/TEST_OUTPUT"
                            ],
                            "command": [
                                "jq"
                            ],
                            "computeResources": {},
                            "image": "quay.io/conforma/cli@sha256:b87bab27cdbb6abdc9e41106629a5ae8c5d04c1e2d859d67bc4fc76c5f7f277a",
                            "imagePullPolicy": "IfNotPresent",
                            "name": "summary",
                            "onError": "continue"
                        },
                        {
                            "args": [
                                "version"
                            ],
                            "command": [
                                "ec"
                            ],
                            "computeResources": {},
                            "image": "quay.io/conforma/cli@sha256:b87bab27cdbb6abdc9e41106629a5ae8c5d04c1e2d859d67bc4fc76c5f7f277a",
                            "imagePullPolicy": "IfNotPresent",
                            "name": "version"
                        },
                        {
                            "args": [
                                "{policy: .policy, key: .key, \"effective-time\": .[\"effective-time\"]}",
                                "/tekton/home/report-json.json"
                            ],
                            "command": [
                                "jq"
                            ],
                            "computeResources": {},
                            "image": "quay.io/conforma/cli@sha256:b87bab27cdbb6abdc9e41106629a5ae8c5d04c1e2d859d67bc4fc76c5f7f277a",
                            "imagePullPolicy": "IfNotPresent",
                            "name": "show-config"
                        },
                        {
                            "args": [
                                "/tekton/home/text-report.txt"
                            ],
                            "command": [
                                "cat"
                            ],
                            "computeResources": {},
                            "image": "quay.io/conforma/cli@sha256:b87bab27cdbb6abdc9e41106629a5ae8c5d04c1e2d859d67bc4fc76c5f7f277a",
                            "imagePullPolicy": "IfNotPresent",
                            "name": "detailed-report",
                            "onError": "continue"
                        },
                        {
                            "args": [
                                "--argjson",
                                "strict",
                                "true",
                                "-e",
                                ".result == \"SUCCESS\" or .result == \"WARNING\" or ($strict | not)\n",
                                "/tekton/results/TEST_OUTPUT"
                            ],
                            "command": [
                                "jq"
                            ],
                            "computeResources": {},
                            "image": "quay.io/conforma/cli@sha256:b87bab27cdbb6abdc9e41106629a5ae8c5d04c1e2d859d67bc4fc76c5f7f277a",
                            "imagePullPolicy": "IfNotPresent",
                            "name": "assert"
                        },
                        {
                            "args": [
                                "create",
                                "--store",
                                "",
                                "/tekton/results/sourceDataArtifact=/var/workdir/conforma"
                            ],
                            "computeResources": {
                                "limits": {
                                    "memory": "128Mi"
                                },
                                "requests": {
                                    "cpu": "250m",
                                    "memory": "128Mi"
                                }
                            },
                            "env": [
                                {
                                    "name": "HOME",
                                    "value": "/tekton/home"
                                },
                                {
                                    "name": "ORAS_OPTIONS"
                                },
                                {
                                    "name": "CA_FILE",
                                    "value": "/mnt/trusted-ca/ca-bundle.crt"
                                }
                            ],
                            "image": "quay.io/konflux-ci/build-trusted-artifacts@sha256:9bd32f6bafb517b309e11a2d89365052b4ab3f1c9c23c4ffd45aff6f03960476",
                            "name": "create-trusted-artifact",
                            "when": [
                                {
                                    "input": "false",
                                    "operator": "in",
                                    "values": [
                                        "true"
                                    ]
                                },
                                {
                                    "operator": "notin",
                                    "values": [
                                        "",
                                        "empty"
                                    ]
                                }
                            ]
                        }
                    ],
                    "volumes": [
                        {
                            "configMap": {
                                "items": [
                                    {
                                        "key": "ca-bundle.crt",
                                        "path": "ca-bundle.crt"
                                    }
                                ],
                                "name": "trusted-ca",
                                "optional": true
                            },
                            "name": "trusted-ca"
                        },
                        {
                            "emptyDir": {},
                            "name": "workdir"
                        }
                    ]
                }
            }
        }
    ],
    "kind": "List",
    "metadata": {
        "resourceVersion": ""
    }
}
